Javascript input.value Change未在浏览器中显示
Javascript input.value Change Not Displaying In Browser
以下内容没有显示我在Chrome或Firefox中看到的任何更改:
var field = document.getElementById( 'input-id' ), nodeName;
if ( field !== null ) {
nodeName = field.nodeName.toLowerCase();
if( nodeName === 'input' || nodeName === 'textarea' ) {
field.value = 'hello';
console.log( field.value );
}
}
目标是:
<input id="input-id" name="input-name" type="text" required="required" placeholder="example">
但是控制台会在两者中报告正确的值。为什么?我使用的是经过验证的HTML5。脚本位于关闭的body
标记之前。
您使用的是,
而不是.
编辑您的代码,伙计:
var field = document.getElementById( 'input-id' ).nodeName;
由于您已经声明了以下内容,这可能不是脚本加载问题:
脚本位于结束正文标记之前。
页面上必须有多个具有相同id
的元素。查看您的源代码(在Firefox上Ctrl+U(并搜索输入id。确保页面上只有一个元素具有该id。
您还可以通过在其他console.log
调用中添加以下行来记录正在更改的元素:
console.log( field );
这应该会将整个元素记录到控制台,并帮助您进一步调试。
尝试这个
$(function() {
var field = document.getElementById( 'input-id' ), nodeName;
if ( field !== null ) {
nodeName = field.nodeName.toLowerCase();
if( nodeName === 'input' || nodeName === 'textarea' ) {
field.value = 'hello';
console.log( field.value );
}
}
});
或者把你的脚本放在页面的末尾。
原因是它不起作用,因为您的脚本在您的输入标记render之前执行。所以将它放在end或body load事件中,或者如果您正在使用jquery,则将其放在文档就绪函数中
您的脚本可能在输入元素之前加载。
试着把你的片段放在页面底部。
我认为您缺少添加onload function
。你可以像一样将其添加到<body>
<body onload="sumfunction();">
或在javascript 中
<script>
window.onload = sumfunction;
</script>
以下是一个示例:http://jsbin.com/ezovun/1/edit
事实证明,在用OP中的代码设置输入值后,我意外地将输入值覆盖到了脚本中其他地方的空字符串中。我的console.log在它所在的位置,在它被覆盖之前就获取了值,这就是为什么尽管在浏览器中得到了不同的结果,但它还是报告了正确的值。我很抱歉没有发布整个脚本,但我试图提供一个简化的例子。
- 如何检测浏览器并根据浏览器显示视频
- 为什么浏览器显示原型属性不同
- Javascript,基于浏览器显示图像
- 浏览器显示/执行表单字段的警报
- 跨浏览器显示模态对话框替换
- 谷歌浏览器 - 显示和隐藏元素
- 请求节点.js后浏览器显示错误
- ajax如何防止浏览器显示ajax url
- 可以'无法在JS中访问document.cookie中的cookie,但浏览器显示存在cookie
- 为什么我的浏览器显示“;未获取引用错误“;在这里
- 如何在用户不刷新浏览器的情况下不断地向用户浏览器显示更新
- ie浏览器显示警告值“未定义”;但火狐和chrome显示出了实际价值
- 不完全回复来自服务器的警告消息用ie8浏览器显示
- 哪个事件导致浏览器显示HTML验证消息
- 检测浏览器-显示不同的链接
- 使浏览器显示下载文件列表
- 浏览器显示过时的JSP页面,用户必须手动刷新
- 浏览器显示区域的位置
- 浏览器显示'reactComponent未定义'在控制台
- 浏览器显示缓存文件而不是重定向