2013-01-11 31 views
1

使用jQuery,我想使一組選擇框的功能以只有一個可以是「是」的方式進行。所以,如果用戶選擇「是」,所有其他人都設置爲「否」。限制一組選擇框只允許一個成爲特定值

我以爲我有代碼工作。不幸的是,我發現,如果用戶僅使用鍵盤進行導航,則代碼在Firefox中不起作用。如果用戶使用鼠標更改字段,則工作正常。爲了澄清,0是「否」的值。

下面是函數:

function f_one(cls) 
{ 
    $('.'+cls).filter('select').not('.'+cls+':focus').val('0'); 
} 

這就是所謂的組類似於選擇框的onchange事件如下:

<select name="crrnt" id="crrnt" class="cAgo" onchange="f_one('cAgo')"> 

我也試過有模仿的onkeyup事件onchange事件。它也沒有工作。當焦點丟失時,它實際上將字段設置回0。

因此,任何關於修補代碼或替換的建議都會很棒。

回答

0

這是怎麼工作的? http://jsfiddle.net/s3QEK/2/

$('select').on('change', function(){ 
    if(this.value === 'yes'){ 
    $('select[data-group="'+$(this).data('group')+'"]:not([name="'+this.name+'"])').filter(function(){ 
     return this.value === 'yes'; 
    }).val('no'); 
    } 
}); 
+0

這適用於只有一組選擇的表單。不幸的是,該頁面有多組選擇。該代碼只適用於一組,即使使用鍵盤導航。 – user1579354

+0

@ user1579354我更新了鏈接。檢查更新,爲每組選擇框更改'data-group =「」'。 –

相關問題