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

你的身体里有一个叫reservation的表格吗?

它将像这样工作:

<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

您可以在支持它的浏览器中使用 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 元素之间的测试使用 DOM 元素必须具有但 HTMLCollection 不应该具有的属性,除非集合的成员具有名称“tagName”。

于 2012-06-04T02:39:12.953 回答
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 回答