13

我正在尝试制作一个无法正常工作的简单 javascript 程序。请帮忙。在 Eclipse 中,我创建了一个动态 Web 项目,在 DD 中,我的欢迎文件是 index.jsp。下面给出的是我的 index.jsp 代码

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Duncan'S</title>
<script type="text/javascript">
function nameSubmit() {
    alert(document.getElementsByName("username").value);
}
function CakeNumber() {
    alert(document.getElementsByName("numOfCake").value);
}
</script>
</head>
<body>
<form action="myservlet.do">
    <table>
        <tr>
              <td>Name:</td>
              <td><input type="text" id="name" name="username" size="10"
                onchange="nameSubmit();"></td>
        </tr>
        <tr>
              <td>Number Of Duncan's Cake:</td>
              <td><input type="text" id="numOfDunCake" name="numOfCake"
                size="5" onchange="CakeNumber();"></td>
        </tr>
    </table>
</form>
</body>
</html>

在上面的代码中,这两个函数都返回 undefined .....!!我怎样才能得到真正的价值?

4

3 回答 3

36

你提到了错误的id

alert(document.getElementById("name").value);

如果你想使用name属性,那么

alert(document.getElementsByName("username")[0].value);

更新:

input type="text" id="name" name="username"  

id 与 name 不同

于 2013-11-07T11:33:19.430 回答
4

document.getElementsByName("name")将获得几个同名的元素。 document.getElementsByName("name")[Number]会得到其中之一。 document.getElementsByName("name")[Number].value将获得特定元素的值。

这个问题的关键是:
元素的名称不是唯一的,它通常用于表单中的几个输入元素。
另一方面,元素的 id 是唯一的,它是 html 文件中特定元素的唯一定义。

于 2017-05-21T02:47:19.893 回答
0

是具有一个或多个复选框值的示例。如果您有两个或更多复选框并且需要值,那么这将非常有帮助。

function myFunction() {
  var selchbox = [];
  var inputfields = document.getElementsByName("myCheck");
  var ar_inputflds = inputfields.length;

  for (var i = 0; i < ar_inputflds; i++) {
    if (inputfields[i].type == 'checkbox' && inputfields[i].checked == true)
      selchbox.push(inputfields[i].value);
  }
  return selchbox;

}

document.getElementById('btntest').onclick = function() {
  var selchb = myFunction();
  console.log(selchb);
}
Checkbox:
<input type="checkbox" name="myCheck" value="UK">United Kingdom
<input type="checkbox" name="myCheck" value="USA">United States
<input type="checkbox" name="myCheck" value="IL">Illinois
<input type="checkbox" name="myCheck" value="MA">Massachusetts
<input type="checkbox" name="myCheck" value="UT">Utah

<input type="button" value="Click" id="btntest" />

于 2017-04-25T10:09:17.690 回答