如何使jquery独立

时间:2012-02-07 23:22:42

标签: javascript jquery jquery-validate

我有一个jquery来验证我的下拉。如果在收音机盒上'是',我可以从下拉菜单中选择。如果收音机框下拉列表中的“否”显示为灰色。

如果两个单选框都是'是',并且两个下拉列表中的值都是'请选择'并单击提交按钮,则会发生验证错误,并且不会重定向到index.html。

如果一个收音机盒位于'是'并且是下拉“请选择”,另一个在“否”,下拉值为“红色”,单击提交按钮,验证错误发生并重定向到index.html。显然,这违背了验证的目的。

我希望有人能帮忙,因为它让我发疯了。!

我已将其缩小到这个探测范围:

});      
       $("input:submit").click(function(){         
           var retVal = false;
           $.each([1, 2], function(i, val){
              retVal = (validate(val) || retVal);
           });
            return retVal;   
       });

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你有一个validate()函数(你没有显示)验证指定的项目,如果正常则返回true,如果无效则返回false。在提交时,您希望为多个项目致电validate(),如果任何,则返回falsefalse返回给提交(相反,返回{{1} }只有所有验证都是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返回false时将其更改为validate(val)。使用false代替&&则意味着|| retVal false后将保持false。在我看来,完全摆脱&&并说:

会更清楚
if (!validate(val)) retVal = false;