2011-12-17 55 views
1

我有一個帶有兩個單選按鈕「Yes」和「No」的窗體,用於切換div的可見性。如何使用jQuery顯示單選按鈕的特定警報?

如果僅在選擇了「是」選項時選擇了「否」選項,我纔會向用戶顯示警報。

如果這兩個選項都未被選中,並且單擊「否」,則不應顯示警報。處理這種

$('.toggle').on('change',function(){ 

    var showOrHide = false; 

    $(this).siblings('input[type=radio]').andSelf().each(function() { 

     if ($(this).val() == 1 && $(this).prop("checked")) showOrHide = true; 

    })  

    $(this).parent().parent().next('.group').toggle(showOrHide);  

}).change() 

回答

1

使用變量存儲已選擇的值。

HTML

<input type="radio" id="Yes" name="rad" value="Yes"/>Yes<br/> 
<input type="radio" id="No" name="rad" value="No"/>No<br/> 

的Javascript

var alreadySelected=""; 
$("input").click(function(){ 
    if(alreadySelected=="Yes") 
    { 
    alert("You are switching from Yes"); 
    } 
    alreadySelected=$(this).val(); 
}); 

編輯:根據你的評論,如果一個單選按鈕在頁面加載已經選中,使用此代碼,

後加載頁面,獲取已經檢查過的項目並將其存儲在「已選擇」變量中。以下是更新後的代碼

var alreadySelected=""; 
$(function(){ 
    alreadySelected=$('input[name=rad]:checked').val() 
}) 
$("input").click(function(){ 
    if(alreadySelected=="Yes") 
    { 
    alert("You are switching from Yes"); 
    } 
    alreadySelected=$(this).val(); 
}); 

這裏是工作演示:http://jsfiddle.net/VMKaP/8/

+0

這幾乎是完美的,但如果在頁面加載時選擇了「是」單選按鈕,則不起作用。如果在這種情況下選擇「否」,則不顯示警報。 http://jsfiddle.net/VMKaP/6/ – Michael

+0

@Michael:在頁面加載中讀取已選擇的值。我更新了我的答案和jsfiddle鏈接來處理這種情況。 – Shyju

1

一種方法是隻當是按鈕已被檢查應用處理器,並刪除它時的無按鈕被選中。我假設兩者都開始未選中,否則至少會有一個按鈕被選中,第二個條件不適用。

$('.toggle[value="Yes"]').on('change', function() { 
    $('.toggle[value="No"]').off('change'); 
    if (this.checked) { 
     $('.toggle[value="No"]').on('change', function() { 
      // show your alert 
     }); 
    }); 
}); 
+0

這接近。它適用於第一次點擊,但警報總是在選擇選項後顯示。見http://jsfiddle.net/HCfsy/ – Michael

+0

@邁克爾 - 你正在使用'val()'不正確。我想你想''切換[value =「0」]''和''toggle [value =「1」]''或使用'eq'。看到這個更新的小提琴:http://jsfiddle.net/rar7V/我的選擇器中有一個額外的空間,我現在已經刪除了。 – tvanfosson

+0

哎呀。差不多了。當選擇「否」時,div不會再次隱藏。 – Michael

0

這裏是一個把戲,將做的工作 - 設置頁面中的一個無形的場,它指示如果「是」按鈕是chosen- 爲前 -

<input type="hidden" value="no" name="isYesChosen"> 

現在,當正在檢查「是」收音機 - 發射一個函數,將「isYesChosen」的值設置爲 - 「是」。

現在只有在檢查輸入的值爲「是」時纔可以觸發切換按鈕 (在jQuery代碼的開頭添加一個簡單的if語句)。 如果您有任何垃圾,請注意我

相關問題