2

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

<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 重命名为 onclick="document.form.inputfield.value = ''"; ...然后它工作正常。

但是...从字段名称中删除“-”在我的情况下不是一个选项(长解释)。

那么,如何清除包含“-”的文本字段???

4

2 回答 2

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

参考:

于 2012-09-08T23:49:16.337 回答
6

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

document.form.input-field;

被解释为

document.form.input - field;

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

document.form["input-field"];
于 2012-09-08T23:52:17.103 回答