2012-02-07 93 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