JavaScript通过单选按钮名称获取值

3

首先,我是JavaScript的初学者,一个真正的新手。

有人可以给我一点提示吗?

我有一个表单,在表单上我有一个单选按钮。

如果单选按钮设置为“是”,我希望在另一页上显示其值。

而且我想通过输入名称获取值。

这是否可能?

我不是要求写我的代码,而只是提供一个起点示例。

我尝试了以下内容,仅作测试之用:

<input type="hidden" name="the_name" value="yes">

if(the_name.element == 'yes') {
    alert('cool');
}
4个回答

3

the_name.value, not the_name.element


谢谢,你能告诉我为什么会出现这个错误吗?名称未定义? - Side
因为它不在表单内。理想情况下,您会想要使用 the_form.elements["the_name"].value - AlienWebguy

1

您可以使用getElementsByName()通过输入名称访问元素值。但是作为标准,由于它有助于卸载DOM,我们使用getElementById()而不是名称。此外,您可以从这里开始-> http://eloquentjavascript.net/


2
你要找的方法是getElementsByName,注意是复数形式。没有"getElementByNames"方法。 - RobG

1

您可以使用以下方式引用表单:

document.forms[formName or formId].elements[element-name];

然而,在文档中,名称并不一定是唯一的。如果只有一个带有该名称的元素,则仅返回一个元素。如果有多个具有相同名称的元素,则会返回一个集合(类似于数组),您需要迭代它们以找到所需的元素。

您还可以使用{{link1:document.getElementsByName}},它始终返回一个集合。因此,您可以执行以下操作:

var elements = document.getElementsByName('the_name');
// get the one with value 'yes'
for (var i=0, iLen=elements.length; i<iLen; i++) {
  if (elements[i].value == 'yes') {
    return elements[i];
  }
}

在编程中,你需要注意大小写敏感性,你可能需要先使用toLowerCase()函数将值转换为小写,或者使用不区分大小写的正则表达式:

例如:

var re = /yes/i;
...
  if (re.test(elements[i].value)) {
    // value is Yes or YES or yeS or ...

0
<input type="hidden" name="the_name" id="the_name" value="yes"> <!-- id added -->

if(formName.the_name.value == 'yes') 
{
   alert('cool');
}

或者更好(因为您不是通过全局名称访问元素)

var element = document.getElementById("the_name");
if(element.value === 'yes')
{
   alert("yes, it is");
}

非常抱歉,但我感觉自己完全是个新手,我一直收到“元素为空”的错误提示:S - Side
1
@Side,var element = document.getElementById("the_name"); 获取具有 the_name id 的元素。您是否已将 id 添加到您隐藏的元素中? - Nivas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接