2012-02-07 55 views
1

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

如果两个单选框是“是”,并在这两个下拉列表值是“请”和点击提交按钮,会出现一个验证错误,并且不重定向到index.html的。

如果一个单选框处于'是'&下拉式'请选择',另一个'no'值为'红色',从下拉并单击提交按钮时会出现验证错误,并重定向到index.html。显然,这违背了验证的目的。

我希望有人能帮助其快把我逼疯了!

我已经把范围缩小到这个作为probem:

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

在你的代码retVal的,如果至少一个验证成功是真实的。 – akonsu 2012-02-07 23:26:54

回答

0

如果我理解正确的话,你有一个validate()功能(你不显示),这验证了指定的项目,如果OK返回truefalse如果无效。在提交时要呼叫validate()了几个项目,如果其中任何返回false回报false的提交(反之,返回true只有所有的验证是true

的方式现有的代码集retVal,一旦它成为truetrue因为validate()或运算任何布尔结果与truetrue试试这个:

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

这开始默认返回true,然后将其更改为false如果validate(val)返回false。使用&&代替||则意味着一旦retValfalse它将保持false。在我看来,这会更清晰刚刚摆脱&&干脆说:

if (!validate(val)) retVal = false; 
+0

是这就是我想做的事情。我把你的代码放入,如果选择“否”,下拉不会变灰,如果选择“是”和“请选择”,则不会出现验证消息。 – Jacob 2012-02-07 23:38:55

+0

WORKING NOW非常感谢! – Jacob 2012-02-07 23:54:09