为什么我不能使用 - 在字段名称?

时间:2012-09-08 23:47:56

标签: javascript html

基本上我只是想清除一个文本字段,这对我来说从来都不是问题。 但是,这不起作用:

<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>

但是,如果我将“input-field”重命名为“inputfield”并onclick to onclick =“document.form.inputfield.value =''”; ......然后就可以了。

但是......从字段名称中删除“ - ”不是我的选择(长解释)。

那么,如何清除包含“ - ”???

的文本字段

2 个答案:

答案 0 :(得分:10)

因为它不是有效的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

参考文献:

答案 1 :(得分:6)

-不是标识符中的有效字符,例如

document.form.input-field;

被解释为

document.form.input - field;

当然,您可以使用方括号表示法来解决问题:

document.form["input-field"];