0

クラスが「classTypex」であるjqueryによって作成された選択ボックスがあります。

この関数を使用して子要素を表示/非表示にしたいのですが、要素を非表示にすることはできません..

以下のコードに従って、テキストエリアと 3 つのラジオ ボタンを追加しています。他の部分でコードを使用すると、テキストエリアを非表示にできますが、ラジオ ボタンは非表示にできません。

// To display radio button selections for DD typex
$(".classTypex").live("change", function () {
   var id = $(this).attr("id").split("colTypex").join(""); 
   var opt = $("#colTypex" + id + " option:selected").val(); 

   if(opt == 'DD') {

       // append a text area for none selection
       $(this).after('<p>');
       $(this).after('<textarea name="ddOptions'+id+'" id="ddOptions'+id+'" rows="4" cols="40">');
       $(this).after('</p>');

       // append radio buttons here
       $(this).after('<p id="preTag'+id+'">');
       $(this).after('Set Users as options');
       $(this).after('<input type="radio" class="columnTypex" id="radioDD'+id+'" name="radioDD'+id+'" value="befree_user" />');
       $(this).after('Set Entities as options');
       $(this).after('<input type="radio" class="columnTypex" id="radioDD'+id+'" name="radioDD'+id+'" value="entity_data" />');
       $(this).after('None');
       $(this).after('<input type="radio" class="columnTypex" id="radioDD'+id+'" name="radioDD'+id+'" value="none" checked />');
       $(this).after('</p>');

   }
   else {
       $('#ddOptions'+id).hide();
       $('#preTag'+id).hide();
   }

});
4

1 に答える 1

1

.after()への各(!)呼び出しは完全なタグを作成する<p>ため、コードは機能しません.after('</p>').

最初に完全な HTML 文字列を作成してから追加する必要があります。

var newHTML = '<p><textarea name="ddOptions'+id+'" id="ddOptions'+id+'" rows="4" cols="40"></p>';
$(this).after(newHTML);
于 2012-10-30T08:04:50.367 に答える