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"); });