Jquery Onchange事件没有被触发 – Primefaces – inputText

未调用以下事件:

 $("#inputTxt").change(function() { alert("changed"); });  

inputTxt的代码如下:

 

coloumn“articleDescription”在名为“articlesInformation”的数据表中定义,该数据表放在表单“articleForm”上。

在检查元素时,我发现inputText的id变为 – “articlesInformation:0:inputTxt”。 可能这就是问题所在。

查看页面信息说:

   
PrimeFaces.cw('InputText','widget_articlesInformation_0_inputTxt' {id:'articlesInformation:0:inputTxt'});

如何为primefaces组件定义jquery?

谢谢,Shikha

当inputText放在datatable中时,primefaces给它id = datatable_id:row_index:inputText_id。 也就是说,第7行中的inputText被赋予id = datatable_id:7:inputText_id。 试试以下……

      function inputTextChanged(rowIndex){ var str = 'table_Details:' + rowIndex + ':inputTxt'; var selected = $(document.getElementById(str)); alert (selected.val()); } 

希望这可以帮助

您可以使用带选择器的属性结束

 jQuery('input[id$="inputTxt"]').change(function() { alert("changed"); }); 

由于Primefaces正在更改元素的id ,您可以使用属性选择器来获取元素的名称(假设它也没有更改),或者您可以向元素添加一个类并按以下方式选择:

按属性:

 $("input[name='inputTxt']").change(function() { alert("changed"); }); 

按class级:

 $(".inputTxt").change(function() { alert("changed"); });