0

我正在解决在文本框中显示文本并使用以下代码

<input name="keyword" type="text" value="no spaces, or hyphens" onblur="this.value=(this.value=="") ? 'no spaces, or hyphens' : this.value;" onfocus="this.value=(this.value=='no spaces, or hyphens') ? "" : this.value;" class="txtfield">

但是当我单击文本框时,会出现以下错误:

时间戳:2013 年 7 月 17 日下午 12:45:19

错误:SyntaxError:语法错误

行:1,列:51

源代码:

   this.value=(this.value=='no spaces, or hyphens') ? 

为什么会出现这个错误?

4

4 回答 4

1

您要么需要使用单引号,要么转义双引号。

单引号

<input name="keyword" type="text" value="no spaces, or hyphens" onblur="this.value = (this.value == '') ? 'no spaces, or hyphens' : this.value;" onfocus="this.value = (this.value == 'no spaces, or hyphens') ? '' : this.value;" class="txtfield">

转义双引号

<input name="keyword" type="text" value="no spaces, or hyphens" onblur="this.value = (this.value == \"\") ? \"no spaces, or hyphens\" : this.value;" onfocus="this.value = (this.value == \"no spaces, or hyphens\") ? \"\" : this.value;" class="txtfield">

更优雅的解决方案显然是单引号。

于 2013-07-17T07:21:26.750 回答
0

有引用相关的错误你的 onblur 属性应该是这样的

onblur="this.value=(this.value=='') ? 'no spaces, or hyphens' : this.value;"
于 2013-07-17T07:22:43.607 回答
0

使用 Placeholder html5 属性,如下 instedof javascript。

<input name="keyword" type="text" value="" placeholder="no spaces, or hyphens" class="txtfield">
于 2013-07-17T07:26:30.310 回答
0
<input name="keyword" type="text" value="no spaces, or hyphens" onblur="if(this.value =='') {this.value='no spaces, or hyphens'}" onfocus="if(this.value =='no spaces, or hyphens') {this.value=''}" class="txtfield">
于 2013-07-17T07:21:23.960 回答