Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery将插件绑定到活动元素_Jquery - Fatal编程技术网

jquery将插件绑定到活动元素

jquery将插件绑定到活动元素,jquery,Jquery,我有一些由用户动态(通过javascript)生成的输入文本字段。我希望这些字段只接受整数,所以我使用字母数字插件。该插件在页面加载时已经存在的元素上按预期工作,但不能与新的动态元素一起工作。如何将新元素绑定到此插件?谢谢 下面是一些示例代码 简单快速修复-更改: $('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" class="intonly" name="p_scnt_' + i

我有一些由用户动态(通过javascript)生成的输入文本字段。我希望这些字段只接受整数,所以我使用字母数字插件。该插件在页面加载时已经存在的元素上按预期工作,但不能与新的动态元素一起工作。如何将新元素绑定到此插件?谢谢

下面是一些示例代码


简单快速修复-更改:

$('<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)
之前插入。