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 に答える