1

わかりました。他にもたくさんの回答を確認しましたが、そこに掲載されている解決策は、私が受講しているクラスの範囲を超えています。IEは、その方法については説明していません。

とにかく、私は単にラジオボタンから値を取得しようとしています。ここにあるのは私のhtmlコードと私のjavascriptです。

<script type="text/javascript">
function bookTrip()
{
    var arrivalcity;

    arrivalcity = document.reservations.radCity.value;

    alert(arrivalcity);
}
</script>

実際のボタンは、私のhtmlコードでは次のようになっています。

    Milwaukee: ($20) <input type="radio" name="radCity" value="20" />

私が警告するとき(到着); 私が得るのはNaNだけです。理由がわかりませんが、文字列20を返す必要がありますか?

明確にさせてください。私には3つの異なる都市の選択肢があります。フォームを開始したときに持っているものを正確に表示するように編集しました。

<form name="reservations">
    <p>First Name: <input type="text" name="txtFirstName" />
    Last Name: <input type="text" name="txtLastName" /></p>

    <span style="font-weight:bold;">Arrival City:</span><br />

    Milwaukee: ($20) <input type="radio" name="radCity" value="20" /><br />
    Detriot: ($35) <input type="radio" name="radCity" value="35" /><br />
    St. Louis: ($40) <input type="radio" name="radCity" value="40" />

選択したものから値を取得する必要があります。スクリプトにハードコーディングできません。

4

4 に答える 4

3

この関数は、次のquerySelectorメソッドを使用して、必要なことを行います。

function selectedRadio(){
    var selValue = document.querySelector('input[name="radCity"]:checked').value;
    alert(selValue);
}

JSFiddle

参照

于 2012-06-04T02:00:50.037 に答える
0

あなたの体には予約という形がありますか?

次のように機能します。

<form name="reservations">
 <input type="radio" name="radCity" value="20" />
</form>

​function bookTrip()
{
    var arrivalcity;
    arrivalcity = document.reservations.radCity.value;
    alert(arrivalcity);
}

ここで実行されていることを確認してください:http://jsfiddle.net/eBhEm/


しかし 、私は代わりにこれを好むでしょう:

<input type="radio" id="radCity" value="20" />

そしてgetElementByIdを使用します

function bookTrip()
{
    var arrivalcity;
    arrivalcity = document.getElementById("radCity").value;
    alert(arrivalcity);
}

jsfiddle で実行されているこれを参照してください。

于 2012-06-04T01:39:07.607 に答える
0
function bookTrip() {
var arrivalcity= document.reservations.radCity;

for (var i = 0, iLen = arrivalcity.length; i < iLen; i++) {
    if (arrivalcity[i].checked) {
        alert(arrivalcity[i].value);

    }
}

}

これが役立つはずだと思います。

ここで動作することを確認してください http://jsfiddle.net/eBhEm/24/

于 2012-06-04T02:55:38.687 に答える
0

querySelector は、それをサポートするブラウザーで使用できますが、使用中のすべてのブラウザーで使用できるわけではありません。昔ながらの (信頼性が高く、堅牢で、どこでも機能する) メソッドは、コレクションをループして、チェックされているものを見つけることです。

function getValue() {
  var buttonGroup = document.forms['reservations'].elements['radCity'];
  // or 
  // var buttonGroup = document.reservations.radCity;

  // Check for single element or collection, collections don't have
  // a tagName property
  if (typeof buttonGroup.tagName == 'string' && buttonGroup.checked) {
      return buttonGroup.value;

  } else {

    // Otherwise, it's a collection
    for (var i=0, iLen=buttonGroup.length; i<iLen; i++) {
      if (buttonGroup[i].checked) {
        return buttonGroup[i].value;
      }
    }
  }
}

HTMLCollection と DOM 要素の間のテストでは、コレクションのメンバーが「tagName」という名前を持っていない限り、DOM 要素が持つ必要があるが、HTMLCollection が持つべきではないプロパティを使用することに注意してください。

于 2012-06-04T02:39:12.953 に答える