0

フォーム フィールドに jqtransform を使用しています。動的フィールドをフォームに追加すると、jqtransform が新しいフィールドに適用されません。サンプルコードをご覧ください。

$(function(){

$('form#js_greatdeals_form').jqTransform();


$('#js_greatdeals_form div.jqTransformSelectWrapper ul li a').click(function(){
var value = $(this).parent().index();
      $("#select_cntry").attr('selectedIndex', value);
      var countryiso = $("#select_cntry").val();

        if(countryiso == 1) {
        var content = '<select name="state" id="state"><option value="s1">State1</option><option value="s2">State2</option></select>';
        $('#newselect').html(content);
        $('select#state').jqTransform(); //Newly added
        }
    }); 
});

私のフォームは、

<form id="js_greatdeals_form" name="js_greatdeals_form" method="post">
  <select id="select_cntry">
    <option selected="selected">select</option>
    <option value="1">Country1</option>
    <option value="2">Country2</option>
  </select>
  <div id="newselect"></div>
</form>

質問に対する回答を試してみました[「新しく追加された」コメント行を参照してください]。しかし、その解決策も私にはうまくいきません。必要なことをしてください。ありがとう

4

1 に答える 1

0

jquery.jqtransform.js ファイルを開き、次の行を見つけます。

/* Fire the onchange event */
if ($select[0].selectedIndex != $(this).attr('index') && $select[0].onchange) {
    $select[0].selectedIndex = $(this).attr('index');
    $select[0].onchange();
 }

その行の下に次を追加するだけです。

/* Fire the change event */
 if ($select[0].selectedIndex != $(this).attr('index')) {
     $select[0].selectedIndex = $(this).attr('index');
    $($select[0]).trigger('change');
 }
于 2013-01-17T12:49:41.067 に答える