Javascript 验证不需要';使用jQuery添加输入后无法工作
单击添加输入并添加输入后,单击添加按钮不会调用Javascript 验证不需要';使用jQuery添加输入后无法工作,javascript,jquery,Javascript,Jquery,单击添加输入并添加输入后,单击添加按钮不会调用$('.submit').submit(函数(){…)中的required\u valid()函数 演示: $('.add_input').live('click',函数(e){ e、 预防默认值(); $('.get_input')。追加('单击我') }) 所需函数\u valid(){ var结果=真; $('.required')。每个(函数(){ if(!$(this.val()){ $(this.css(“背景”,#ffc4c4”);
$('.submit').submit(函数(){…
)中的required\u valid()
函数
演示:
$('.add_input').live('click',函数(e){
e、 预防默认值();
$('.get_input')。追加('
单击我')
})
所需函数\u valid(){
var结果=真;
$('.required')。每个(函数(){
if(!$(this.val()){
$(this.css(“背景”,#ffc4c4”);
结果=假;
}
$(此).keyup(函数(){
$(this.css(“背景”和“#FFFFEC”);
})
});
返回结果;
}
$('.submit').submit(函数(){
var通过=真;
//已通过=必需的\u selectbox()&&passed;
已通过=必需的\u valid()&&passed;
如果(!通过){
$('loadingDiv,#overlay').hide();
返回false;
}
});
您需要使用“.live()”(.delegate()”或新的“.on()”)设置“提交”处理程序,就像“addInput”按钮一样:
您正在动态添加这些表单,因此您的处理程序实际上并不绑定到任何表单
或者,您可以在添加表单时绑定处理程序。很抱歉,我没有得到确切不起作用的内容。提交请求时出现提交错误。这就是您所指的吗?如果您使用的是jQuery 1.7,您应该使用
.On()
如果您使用的是jQuery<1.7,您应该使用.delegate()
。不要使用.live()
,因为它比其他版本慢得多。是的,这是真的-我还没有达到1.7,所以我不知道“.on()”语法:-)我必须升级到1.7版本,因为WebKit会出错。否则的话,我会用其他函数在代码中添加它,但不会使用我的代码,请看我的演示:这里没有名为“autocomplet\u valid”的函数。你应该使用调试工具,因为它会准确地告诉你这一点。
<a href="" class="add_input">Add Input</a>
<div class="get_input"></div>
$('.add_input').live('click', function(e){
e.preventDefault();
$('.get_input').append('<form class="submit"><input name="test" class="required"> <br /> <button>Click Me</button></form>')
})
function required_valid() {
var result = true;
$('.required').each(function () {
if (!$(this).val()) {
$(this).css("background", "#ffc4c4");
result = false;
}
$(this).keyup(function () {
$(this).css("background", "#FFFFEC");
})
});
return result;
}
$('.submit').submit(function () {
var passed = true;
//passed = required_selectbox() && passed;
passed = required_valid() && passed;
if (!passed) {
$('#loadingDiv, #overlay').hide();
return false;
}
});
$('body').delegate('.submit', 'submit', function() {
// your submit code here
});