jquery将插件绑定到活动元素
我有一些由用户动态(通过javascript)生成的输入文本字段。我希望这些字段只接受整数,所以我使用字母数字插件。该插件在页面加载时已经存在的元素上按预期工作,但不能与新的动态元素一起工作。如何将新元素绑定到此插件?谢谢 下面是一些示例代码jquery将插件绑定到活动元素,jquery,Jquery,我有一些由用户动态(通过javascript)生成的输入文本字段。我希望这些字段只接受整数,所以我使用字母数字插件。该插件在页面加载时已经存在的元素上按预期工作,但不能与新的动态元素一起工作。如何将新元素绑定到此插件?谢谢 下面是一些示例代码 简单快速修复-更改: $('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" class="intonly" name="p_scnt_' + i
简单快速修复-更改:
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" class="intonly" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
$('')。附录(scntDiv);
到
$(').numeric().appendTo(scntDiv);
请注意,动态插入的字段都具有相同的id。这不好,您应该为每个输入使用唯一的id,或者根本没有id。简单快速修复-更改:
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" class="intonly" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
$('')。附录(scntDiv);
到
$(').numeric().appendTo(scntDiv);
请注意,动态插入的字段都具有相同的id。这不好,您应该为每个输入使用唯一的id,或者根本不使用id。
live
在这里对您没有帮助。无论何时添加新输入,都必须重新启动插件:
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" class="intonly" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>')
.appendTo(scntDiv)
.find('input').numeric();
$(“”)
.附录(scntDiv)
.find('input').numeric();
live
在这里对您没有帮助。无论何时添加新输入,都必须重新启动插件:
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" class="intonly" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>')
.appendTo(scntDiv)
.find('input').numeric();
$(“”)
.附录(scntDiv)
.find('input').numeric();
给你
你只需要这个
$('#addScnt').live('click', function() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" class="intonly" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv).find("input").numeric();
$('addScnt').live('click',function()){
$(“”).appendTo(scntDiv.find(“input”).numeric();
问题不是因为您正在使用live
,而是因为您没有在新创建的输入框上运行numberic
插件。给您
你只需要这个
$('#addScnt').live('click', function() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" class="intonly" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv).find("input").numeric();
$('addScnt').live('click',function()){
$(“”).appendTo(scntDiv.find(“input”).numeric();
问题并不是因为您正在使用
live
,而是因为您没有在新创建的输入框上运行numeric
插件。一种方法就是调用字母数字插件进行动态输入:
$('#addScnt').live('click', function() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" class="intonly" name="p_scnt_' + i + '" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
$('#p_scents p:last input').numeric(); // Added this line...
return false;
});
$('addScnt').live('click',function()){
$('p>')。附录(scntDiv);
i++;
$('#p#p:last input').numeric();//添加了此行。。。
返回false;
});
一种方法就是为您的动态输入调用字母数字插件:
$('#addScnt').live('click', function() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" class="intonly" name="p_scnt_' + i + '" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
$('#p_scents p:last input').numeric(); // Added this line...
return false;
});
$('addScnt').live('click',function()){
$('p>')。附录(scntDiv);
i++;
$('#p#p:last input').numeric();//添加了此行。。。
返回false;
});
只需在新添加的输入字段上调用.numeric()方法。完成.appendTo(scntDiv)后,调用:
scntDiv.children('p:last .intonly').numeric();
完整代码:
只需在新添加的输入字段上调用.numeric()方法。完成.appendTo(scntDiv)后,您可以调用:
scntDiv.children('p:last .intonly').numeric();
完整代码:
+1用于实现对
numeric()
的调用可以在调用appendTo(scntDiv)
之前插入+1用于实现对numeric()
的调用可以在调用appendTo(scntDiv)
之前插入。