jqtranform未应用于动态添加的字段

时间:2013-01-17 12:39:41

标签: jquery jqtransform

我正在使用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>

我尝试了question给出的答案[请参阅评论专栏“新添加”]。但是这个解决方案对我来说也不起作用。 请只做那些需要的。感谢

1 个答案:

答案 0 :(得分: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');
 }