2010-06-25 53 views
0

我試圖設置一個表單,用戶必須從select中選擇一個選項或在輸入中輸入一個值。一個必須要求,但不是兩個。我試圖寫一個if else語句jQuery,試圖根據所選內容驗證一個字段或另一個字段

如果選擇的狀態,然後刪除類的省,如果省填充然後刪除狀態

$("#state").bind('change' , function() { 
    if ($(this).is(':selected')) { 
      $(this).parents('.foreign').removeClass("required"); 
     } 
     else{ 
     $(#province).is(':filled'); 
     $(this).parents('.usa').removeClass("required"); 
      } 
}); 

類,但我知道這是不是怎麼辦它。希望有人得到我想要的東西的想法。提前致謝!基本上你可以選擇這個或那個,但不是兩個。

回答

1

關閉我的頭頂,試試這個:

<select id="state_province"> 
    <option value="state">State</option> 
    <option value="province">Province</option> 

$('#state_province').bind('change', function() { 
    if($('option:selected', this).val() == 'state') { 
     $('option[value=state]', this).show().addClass("required"); 
     $('option[value=province]', this).hide().removeClass("required"); 
    } else { 
     $('option[value=province]', this).show().addClass("required"); 
     $('option[value=state]', this).hide().removeClass("required"); 
    } 
}); 

編輯根據您的評論:

啊,所以你想要的東西,如:(對不起,我因此可能會有所調整)

<select id="state" class="state_province"> 
... 
</select> 

<input type="text" id="province" class="state_province" /> 

===

$('.state_province').bind('change', function() { 
    var jThis = $(this); 
    if (jThis.is('select:selected')) { // state selected 
     jThis.addClass("required"); 
     $('input.state_province').removeClass("required"); 
     $(this).parents('.usa').addClass("required"); 
    } 
    if (jThis.is('input:filled')) { // province filled 
     jThis.addClass("required"); 
     $('select.state_province').removeClass("required"); 
     $(this).parents('.usa').removeClass("required"); 
    } 
}); 
+0

這是一個很好的解決方案;但在我使用它的場景中,需要#state是五十個州的選擇菜單,#province是一個輸入。所以我需要選擇一個或另一個,但不是兩個。 我可能會默認你的想法,但如果我不能這樣做。再次感謝! – CarterMan 2010-06-25 00:26:53

+0

那麼如果我有五個複選框,並且只需要檢查一個或多個複選框,我該怎麼做? – CarterMan 2010-06-27 23:20:52

相關問題