在文本框中显示文本

时间:2013-07-17 07:17:53

标签: javascript onblur onfocus

我正在处理文本框中的显示文字&使用以下代码

<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 个答案:

答案 0 :(得分: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">

Escaped Double Quotes

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

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

答案 1 :(得分: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">

答案 2 :(得分:0)

有报价相关的错误 你的onblur属性应该是这样的

onblur="this.value=(this.value=='') ? 'no spaces, or hyphens' : this.value;"

答案 3 :(得分:0)

使用占位符html5属性,如下面的javascript。

<input name="keyword" type="text" value="" placeholder="no spaces, or hyphens" class="txtfield">