2013-07-02 70 views
0
$('#tableId').on('change', ':radio', function() { 
    console.log($(this)); 
    console.log($(this).attr('checked')); 
}); 

第二個控制檯語句打印未定義。我不確定爲什麼,這個$(this)看起來像是擁有正確的輸入元素。jQuery看看是否在表中檢查單選按鈕

編輯:

我試圖做這樣的事情http://jsfiddle.net/briguy37/EtNXP/但我的單選按鈕是在一個表

$('#tableId').on('change', ':radio', function() { 
    console.log($(this).is(':checked')); 
    var prevValue = $(this).attr('previousValue'); 
    if(prevValue == "true") 
    { 
     $(this).attr('checked', false); 
    } 
    $(this).attr('previousValue', $(this).is(':checked')); 
    }); 
+0

使用jQuery的'。是()'方法。或者在單詞檢查前插入':' –

+0

請發佈您的HTML,如果可能的話,請提供一個jsFiddle。 – j08691

回答

1

嘗試使用this.checked$(this).prop('checked')$(this).is(':checked'),而不是使用attr

$('#tableId').on('change', ':radio', function() { 
    console.log($(this)); 
    console.log(this.checked); 
}); 

你要做到這一點,使無線電deselectable:

$('#radioinstant').click(function() { 
    var previousValue = $(this).data('previousValue'); 
    this.checked = !previousValue; 
    $(this).data('previousValue', this.checked); 
}); 

Demo

還沒有這樣做的change事件(它發生的變化已經完成之後,您不能再在更改事件中更改無線電狀態),則需要在更改前發生的click事件以及您可以取消或更改狀態的位置執行此操作的單選按鈕。

變化:

$('#tableId').on('change', ':radio', function() { 

到:

$('#tableId').on('click', ':radio', function() { 
+0

好吧,但他們在一張桌子上,那麼我該怎麼做呢。這就是我的問題,獲取表中的元素來改變屬性。 – Andrew

+0

@Andrew你需要顯示你的標記。 – PSL

+0

無論使用合適的選擇器,它都可以工作。但是如果沒有顯示您的標記並澄清您的問題,則很難提供幫助。 – PSL

0

試試這個,相應地改變選擇。

$('#tableId').on('click', ':radio', function() { 
    if($(this).is(':checked')) 
     console.log("Yes"); 
    else 
     console.log("No"); 
}); 
+0

然後我將如何編輯該選中的值?看看上面的編輯 – Andrew

相關問題