2

HTMLに次のブロックがあります

<div class="selection">
  <p><input name="custrecord_npsdtl_decision" id="custrecord_npsdtl_decision" type="radio" value="I am solely responsible for the decision">I am solely responsible for the decision </p>   
  <p><input name="custrecord_npsdtl_decision" id="custrecord_npsdtl_decision" type="radio" value="I am partially responsible for or influence the decision">I am partially responsible for or influence the decision </p>
  <p><input name="custrecord_npsdtl_decision" id="custrecord_npsdtl_decision" type="radio" value="I am not involved in the decision">I am not involved in the decision </p>
  <p><input name="custrecord_npsdtl_decision" id="custrecord_npsdtl_decision" type="radio" value="Don't know">Don't know </p>
</div>

そして、次のスニペットを使用して、選択したオプションに基づいてフォーム進行をチェックする関数:

var decisionmaker = $('#custrecord_npsdtl_decision:checked').val();
if (decisionmaker == elements['customlist_nps_decision'][2] || decisionmaker == elements['customlist_nps_decision'][3]) {
  redirect();
}

これは、Chrome、Firefox では期待どおりに機能しますが、Internet Explorer(8) では機能しませんでした。いくつかの検査を行って、私はそれを見つけました

$('#custrecord_npsdtl_decision:checked')

期待どおりにオブジェクトを返しますが、オブジェクトで val() を呼び出すと未定義が返されます。

私は絶対に当惑しています。IE のラジオ リストから選択したオプションを取得するにはどうすればよいですか?

4

2 に答える 2

5

ID は一意である必要があります。これが Chrome と Firefox でまったく機能していることに非常に驚いています。

id 属性を削除し、名前で選択します。

$('input[name="custrecord_npsdtl_decision"]:checked').val();
于 2012-05-23T18:20:39.943 に答える
2

各ラジオ ボタンに同じ ID を使用しないでください。名前セレクターを使用してグループの選択を取得できます。

$('input[name=custrecord_npsdtl_decision]:checked').val();
于 2012-05-23T18:21:01.333 に答える