2
在某些情況下,我必須檢測單選按鈕更改。問題是應用程序只有它感興趣的按鈕的ID。例如,給定該HTML片:根據按鈕ID檢測單選按鈕更改
<label class="required">Type</label><br/>
<span class="vertical">
<input checked="checked" id="diabetes_type-none" name="diabetes_type" type="radio" value="none" /><label for="diabetes_type-none">No diabetes</label><br />
<input id="diabetes_type-dm1" name="diabetes_type" type="radio" value="dm1" /><label for="diabetes_type-dm1">DM1</label><br />
<input id="diabetes_type-dm2" name="diabetes_type" type="radio" value="dm2" /><label for="diabetes_type-dm2">DM2</label><br />
<input id="diabetes_type-other" name="diabetes_type" type="radio" value="other" /><label for="diabetes_type-other">Other type</label>
<input class="small free" id="diabetes_type-other_more" name="diabetes_type-other_more" type="text" />
</span>
和給出的ID「diabetes_type - 其他」應用程序必須執行一些代碼每次用戶檢查或取消選中「其他類型」按鈕。代碼只有必須在用戶單擊此單選按鈕時執行,或者當用戶單擊任何其他按鈕時取消選中先前的「其他類型」選中按鈕。如果用戶點擊DM1然後點擊DM2,則不應執行該功能。這是我的方法:
$("#" + _var).change(function() {
alert('changed');
});
問題這裏是代碼是當用戶點擊「其他類型」,而不是當用戶取消選中這個被觸發的功能。
另一種方法是獲得無線電的名字,然後做這樣的事情:
_radioName = "diabetes_type"; // Obtain programmatically
$("input[name=" + _radioName + "]").change(function() {
alert('changed');
});
現在的問題是這樣的功能總是觸發,在任何按鈕點擊我需要的功能,只觸發時用戶檢查或取消選中給定的單選按鈕。你可以玩this jsfiddle。