为什么可以't我在字段名称中使用-
Why can't I use - in field names?
基本上我只是想清除一个文本字段,这对我来说从来都不是问题。然而,这不起作用:
<html>
<body>
<form name="form">
<input type="text" name="input-field" value="Value" />
<input type="button" name="clear" value="Clear field" onclick="document.form.input-field.value = ''"; />
</form>
</body>
</html>
但是,如果我将"inputfield"重命名为"inputfield",并将onclick重命名为onclick="document.form.inputfield.value=''"。。。然后它工作得很好。
然而。。。在我的情况下,从字段名称中删除"-"不是一个选项(详细解释)。
那么,如何清除包含"-"的文本字段???
因为它不是有效的JavaScript标识符。但是,您可以使用以下内容:
document.form['input-field'].value
这与不能使用var my-var
声明变量的原因相同。另一方面,如果你有一个object
,比如有几个键的form
,你可以访问它的属性,就像它是一个关联数组一样:
var form = {
"input-field": 20,
otherKey: 30
};
form.input-field; // Error
form.otherKey; // OK
form['input-field']; // OK
参考文献:
- 标识符名称和标识符(ECMAScript语言规范)
- 对象作为关联数组
-
不是标识符中的有效字符,例如
document.form.input-field;
被解释为
document.form.input - field;
当然,你可以通过使用方括号表示法来解决这个问题:
document.form["input-field"];
相关文章:
- 在控制器上使用“$watch”时,为什么不更新此隐藏字段
- 为什么可以't我在字段名称中使用-
- 为什么我用于检查所需输入字段的jQuery脚本如此缓慢
- 为什么regex只验证字段中的一个字符,而不是所有输入的字符
- 为什么在使用 formValidation.js 时需要指定字段的行属性
- 为什么Angular ng消息'当=“0”时;“必需”'即使输入字段有输入,也会激发
- 为什么在下面的场景中,用于存储所选文件名和文件路径的隐藏输入字段没有在表单上生成
- 为什么我总是得到属性或字段尚未初始化
- 为什么可以't我在一个单独的字段中重复使用我的Pikaday日历
- 为什么 react 将输入[类型=“文本”] 字段设为只读,除非我提供 onChange 回调
- 为什么欧芹不验证每个字段(例如失去焦点),而我调用$('#myForm').validate();
- KnockoutJS,文本与值绑定.为什么文本绑定不绑定到输入字段
- 允许用户添加表单输入字段:为什么 append() 只工作一次
- 为什么只写一个字段而不对它做任何事情
- 为什么我的电子邮件已发送字段写入第 20 行而不是第 2 行
- 为什么过滤器在角度的输入字段中不起作用
- 为什么Javascript对象不更新字段
- 为什么没有从客户端设置asp隐藏字段
- 为什么通过输入字段进行移位制表符不适用于 dijit.Chrome 上的字段集
- 为什么使用knockout.js时数据不会出现在HTML字段中