如何在其他字段的.change函数创建的字段上应用.change函数?

时间:2016-07-15 06:35:24

标签: javascript jquery

此函数在更改零件号(pno)字段时创建进程名称(prc)字段,现在我想要更改进程名称的进程特征字段,但进程名称上的.change函数不起作用($('#prc ')。change(function(){});此函数不起作用)

 $('#pno').change(function(){
   var partno=$("#pno option:selected" ).val();
   $.ajax({ 
       cache: false,
       dataType: "html",
       type: "POST", 
       evalScripts: true,
       url: '<?php echo Router::url(array('controller'=>'Partconfs','action'=>'addpro'));?>',
       data: ({partno:partno}), 
       success: function(result){
         var pch=result.split('//');
         var plen=pch.length;
         var str="";
         $('#fid').html('');        
         str='<tr><td><br><b>PROCESS NAME</b><br><br></td></tr><tr><td><select name="process_name" label="" id="prc" style="height:30px; margin-top:-5px; min-width:190px; width:auto;" ><option value="">Select any</option>';
         $.each(pch,function(i,v){
           str += '<option value="'+v+'">'+v+'</option>';
         });
        str +='</select></td></tr>';
        $('#fid').append(str);
      }
    });
});

2 个答案:

答案 0 :(得分:0)

您必须在动态字段上使用on函数。 http://api.jquery.com/on/

答案 1 :(得分:0)

您需要在此行之后直接添加事件侦听器:

$('#fid').append(str);

当节点准备好附加事件侦听器时,或者您需要在将新<select>写入DOM之前从可用的父节点委派事件。

$('#fid').on('change', '#prc', function() {
   // do your stuff
});

这可以通过将事件附加到有效组件来实现,但只有当更改元素的选择器(在#fid下面)与选择器'#prc'匹配时才会触发