2011-05-17 86 views
1

我有這個簡單的代碼:添加類時(...)使用jQuery

HTML:

<input type="text" name="name" class="required" /> 

<select id="options" name="options" size="1"> 
    <option value="0"> YES </option> 
    <option value="1"> NO </option> 
</select> 


<input type="text" name="email" /> 
<input type="text" name="city" /> 

問:

我想補充class = "required"emailcity字段options等於1

回答

1

我添加標識對您輸入元素,使選擇更快:

<input type="text" name="email" id="email" /> 
<input type="text" name="city" id="city" /> 

的jQuery:

$("#options").change(function() { 
    if ($(this).val() == "1") { 
     $("#email, #city").addClass("required"); 
    } 
    else { 
     $("#email, #city").removeClass("required"); 
    } 
}); 
+0

我認爲在代碼中存在問題。錯誤的東西 – Cheerio 2011-05-17 09:45:48

+0

如果你在if語句中引用額外的括號 - 我只是刪除它。 – 2011-05-17 09:46:29

0
if($('#options').val() == "1"){ 
    $('#email, #city').addClass('required'); 
} 
3

喜歡的東西:

$('#options').change(function() { 
    $('input[name="email"], input[name="city"]') 
     .toggleClass('required', this.value === '1'); 
}); 

參考:changetoggleClass

+0

我喜歡這個新的解決方案。謝謝 :) – Cheerio 2011-05-17 09:53:52

0

爲輸入分配id並執行以下邏輯,id總是更好,因爲在複雜的DOM情況下執行所需的時間更少。

$('#options').change(function(){ 
if($(this).val() == 1) { 
$('#inputemail').addClass('required'); 
$('#city').addClass('required'); 
}else { 
$('#inputemail').removeClass('required'); 
$('#city').removeClass('required'); 
} 
});