2016-05-11 69 views
-1

是否有可能以確定是否單選按鈕的值沒有改變?jQuery的 - 確定是否單選按鈕值沒有改變

目前,我試圖改變按鈕更改提交按鈕的確認消息,如果該值沒有改變不想要的任何消息。我現在是這樣的:

$('input[type="radio"]').change(function() { 
    var selected = $('input:checked[type="radio"]').val(); 
    if(selected == 'true') { 
     $("#submit_button").data("confirm", "foo"); 
    } else if(selected == 'false') { 
     $('#fee').hide(); 
     $("#submit_button").data("confirm", "bar"); 
    } 

這將改變確認消息給foo如果選擇的按鈕是真的,欄如果選擇的按鈕是假的。但是,如果我不想返回任何內容(沒有消息),如果單選按鈕默認爲true,並且選擇是true,那該怎麼辦?

+0

使用複選框而不是單選按鈕。 –

+1

默認情況下,如果輸入被選中或未被選中,則會返回'defaultChecked' DOM節點屬性。現在,閱讀3次你的問題,我還不確定你在這裏期待什麼? –

+0

我不確定你想要做什麼,但是應該在提交點擊時進行驗證。在提交去尋找輸入值並驗證,如果你的值是X,那麼如果不是Z,則不需要在無線電輸入上設置一個事件。 – andybeli

回答

1

可以啓動事件以外的變量:

var radioChanged = 0; 

而且,在活動中提高它:

$(':radio').change(function() { 
    radioChanged += 1; 
    // your code ... 
}); 

然後,後來:

if (radioChanged > 0) { 
    alert('Change function occurred ' + radioChanged + ' times.'); 
} else { 
    alert('Radio button not changed.'); 
} 
+0

感謝您的回覆。但我認爲這裏有一個問題。如果用戶從true設置爲false,並且false設置爲true,它會提示'Change function occurred'。我的情況是,如果單擊按鈕時單選按鈕的值沒有改變,那麼它將返回'單選按鈕沒有改變'。這是在jQuery中可以實現還是我在錯誤的方向?再次感謝 – pyfl88

+0

你可以檢查'if(radioChanged%2 == 1)'那麼這個值不是原來的那個。 –

0

可以隱藏消息元素只是增加顯示:無它或使用jQuery隱藏方法

$('#someElementId').hide(); 

$('#someElementId').css("display","none") 
1

據我瞭解你的期望的行爲,檢查是否有無線電已經沒有更多的默認選中的值:根據您的要求,我可以說

$('form').on('submit', function() { 
    var anyRadioChanged = !!$(this).find('input[type="radio"]').filter(function() { 
    return $(this).is(':checked') != this.defaultChecked; 
    }).length; // '!!' to get boolean but it doesn't really matter here 

    if(anyRadioChanged) { 
    // show message(???) 
    } 
}) 
+0

我不知道'this.defaultChecked',不錯的一個......但是如果在事件之前通過某種數據庫調用來使用'defaultChecked',它會起作用嗎? –

+0

@ user6188402 defaultChecked是根據checked屬性在第一次被瀏覽器解析器引擎解析時的設置方式設置的。 –