Javascript 如何使jquery独立
我有一个jquery来验证我的下拉列表。如果收音机上的“是”,我可以从下拉列表中选择。如果收音机盒上的“否”下拉列表变灰 如果两个单选框都是“是”,并且两个下拉列表中的值都是“请选择”,并且单击了“提交”按钮,则会发生验证错误,并且不会重定向到index.html 如果一个单选框位于“是”&下拉框“请选择”,另一个位于“否”,下拉框和提交按钮中的值为“红色”,则单击确认错误occors并重定向到index.html。显然,这违背了验证的目的 我希望有人能帮助我,因为这让我发疯 我把问题缩小到这一点:Javascript 如何使jquery独立,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我有一个jquery来验证我的下拉列表。如果收音机上的“是”,我可以从下拉列表中选择。如果收音机盒上的“否”下拉列表变灰 如果两个单选框都是“是”,并且两个下拉列表中的值都是“请选择”,并且单击了“提交”按钮,则会发生验证错误,并且不会重定向到index.html 如果一个单选框位于“是”&下拉框“请选择”,另一个位于“否”,下拉框和提交按钮中的值为“红色”,则单击确认错误occors并重定向到index.html。显然,这违背了验证的目的 我希望有人能帮助我,因为这让我发疯 我把问题缩小到这一
});
$("input:submit").click(function(){
var retVal = false;
$.each([1, 2], function(i, val){
retVal = (validate(val) || retVal);
});
return retVal;
});
如果我理解正确,您有一个
validate()
函数(您没有显示该函数),该函数验证指定的项,并在确定时返回true
,在无效时返回false
。在提交时,您希望为多个项目调用validate()
,如果其中任何一项返回false
则返回false
以提交(相反,仅当所有验证均true
时,才返回true
)
现有代码设置retVal
的方式,一旦变为true
,它将保持true
,因为validate()
或true
的任何布尔结果都将变为true
。请尝试以下操作:
$("input:submit").click(function(){
var retVal = true;
$.each([1, 2], function(i, val){
retVal = validate(val) && retVal;
});
return retVal;
});
这从默认返回值true
开始,如果validate(val),则将其更改为false
返回false
。使用&
而不是|
则意味着一旦返回false
它将保持false
。在我看来,将&
完全去掉,并说:
if (!validate(val)) retVal = false;
如果至少有一次验证成功,则代码中的retVal为true。是,这就是我要做的。如果选择“否”,则下拉列表不会变为灰色,如果选择“是”和“请选择”,则不会出现验证消息。