1

jQuery を使用して、選択ボックスのセットを 1 つだけが「はい」になるように機能させたいと思います。したがって、ユーザーが「はい」を選択すると、他のすべては「いいえ」に設定されます。

機能するコードがあると思いました。残念ながら、ユーザーがナビゲーション専用のキーボードを使用している場合、コードが 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 に戻していました。

そのため、コードにパッチを適用するか、代替品を提供することについての提案は素晴らしいでしょう.

4

1 に答える 1

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');
  }
});
于 2013-01-11T20:29:50.877 に答える