javascript - 将 getElementsByName 替换为 getElementsById 不起作用

标签 javascript html

我有这段有效的代码:

<script type="text/javascript" language="javascript">
function doStuff1(){
    var eml=document.getElementsByName('email')[0].value;
        msg=document.getElementsByName('message')[0];
    msg.value = eml + ' ' + msg.value;
    alert ('Message has been submitted');
    return true;  //return false to test just messagebox and updated message textarea
}
</script> 

但是,当我使用 getElementById 而不是 getElementsByName 时,它就会停止工作。那就是该方法不会显示警报对话框。

当然,我在与name相同的标签上添加了一个id属性,比如id="email"name="email"

单击表单中的提交按钮时将调用此方法。

可能是什么问题?

最佳答案

getElementById 不返回元素集合,而只返回单个元素。 document.getElementById('email')[0].value 是语义错误。

删除 [0]

关于javascript - 将 getElementsByName 替换为 getElementsById 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159569/

相关文章:

javascript - 在 xquery 中转义大于 JavaScript 中的符号

html - 如何从 prime ng p-fileUpload 的文件上传中删除无效或特定文件?

javascript - 如何正确触发 Bootstrap 对话框上的默认操作?

javascript - 使用可选输入设置 ActiveX 属性

javascript - 禁用光标/编辑但保持聚焦能力

jquery - 如何在 bootstrap 弹出窗口中显示格式化的 xml 文本

javascript - 跨度外层后台控制层级

html - IE9 tabbable div inside form 不提交?

javascript - 将日期格式字符串中的 "/"全局字符串替换为 "-"

javascript - 我怎样才能对完全间隔的名称进行模式匹配?