Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果输入并删除文本,则文本框不会验证为空_Javascript_Html_Forms_Placeholder - Fatal编程技术网

Javascript 如果输入并删除文本,则文本框不会验证为空

Javascript 如果输入并删除文本,则文本框不会验证为空,javascript,html,forms,placeholder,Javascript,Html,Forms,Placeholder,我对文本框的水印文本有一个恼人的问题 我想要的是,如果用户点击文本框,文本框中没有文本,那么默认文本就会出现(例如搜索…) 我有这个功能来检查它: document.getElementById("searchtextbox").onblur = function() { if (document.getElementById("searchtextbox").value == "") { document.getElementById("searchtextbox").setAtt

我对文本框的水印文本有一个恼人的问题

我想要的是,如果用户点击文本框,文本框中没有文本,那么默认文本就会出现(例如搜索…)

我有这个功能来检查它:

document.getElementById("searchtextbox").onblur = function() {

if (document.getElementById("searchtextbox").value == "") {
     document.getElementById("searchtextbox").setAttribute("value", "Search...");
}
如果我只需单击“内”和“外”就可以了。当我单击“内部”,输入文本并将其删除,然后单击“外部”时,问题就出现了


我试着用Length==0,value==null,value.trim()==“”!Value。匹配(/+//)并没有返回此情况的真值。

< P>请考虑使用<强> HTML5<代码>占位符< /C>属性> <强> > /P>
<input type="text" id="searchtextbox" placeholder="Search..." value="" />
如果这是错误的,您可以使用Javascript
placeholder
hack

更新:如果您需要如何以良好方式实施的帮助,请参阅


我还查看了您的代码并修复了它:


在这里使用
setAttribute
不是正确的方法,您不想设置属性,而是要设置live属性(
.value
)。你的IF条件确实有效,但是变化没有反映出来。

< P>请考虑使用<强> HTML5<代码>占位符< /Cord>属性< /强> < /P>
<input type="text" id="searchtextbox" placeholder="Search..." value="" />
如果这是错误的,您可以使用Javascript
placeholder
hack

更新:如果您需要如何以良好方式实施的帮助,请参阅


我还查看了您的代码并修复了它:


在这里使用
setAttribute
不是正确的方法,您不想设置属性,而是要设置live属性(
.value
)。你的IF条件确实起作用了,但是变化没有反映出来。

< P>如BAZMEGGAKAPA建议的,考虑<代码>占位符< /代码>属性。


要回答您的问题,您的代码不起作用,因为您正在使用
setAttribute
,而用户只是修改了属性
。而不是使用<代码> SETATECTION/CODE >,尝试使用<代码>。value =“查找……”/代码> < /P> < P>作为BZMeGaKAPA建议,考虑<代码>占位符< /Cord>属性> < /P>
要回答您的问题,您的代码不起作用,因为您正在使用
setAttribute
,而用户只是修改了属性
。不要使用
setAttribute
,试着使用
.value='Search…'

听起来一点也不刺耳,但你真的认为在浏览器支持较少的情况下使用HTML 5是个好主意吗?@naveen如果是HTML 5Hey,它也不适用于大多数IE版本,感谢您的回复,但我需要它与IE6及以上的工作。@Omer请查看我的编辑。这里的最佳实践是为支持它的浏览器提供HTML5
占位符
属性,执行Javascript功能检测,并在出现故障时为IE提供Javascript回退解决方案。@Craig你说的“很少支持”是什么意思?你在开玩笑吗?每个广泛使用的浏览器的最新版本都支持HTML5,包括
placeholder
。那么,您将如何定义广泛支持?听起来一点也不刺耳,但您真的认为在浏览器支持较少的情况下使用HTML 5是一个好主意吗?@naveen也不适用于大多数版本的IE,如果它是HTML 5嘿,谢谢您的回复,但我需要它来与IE6及以上一起使用。@Omer请查看我的编辑。这里的最佳实践是为支持它的浏览器提供HTML5
占位符
属性,执行Javascript功能检测,并在出现故障时为IE提供Javascript回退解决方案。@Craig你说的“很少支持”是什么意思?你在开玩笑吗?每个广泛使用的浏览器的最新版本都支持HTML5,包括
placeholder
。那么您如何定义广泛支持呢?在if条件下使用document.getElementById(“searchtextbox”).value=“search”;在if条件下,使用document.getElementById(“searchtextbox”).value=“search”;我爱你,在过去的两个小时里一直在努力,不知道我做错了什么。使用.value=“Search..”非常有效!我爱你,在过去的两个小时里一直在努力,不知道我做错了什么。使用.value=“Search..”非常有效!
document.getElementById("searchtextbox").onblur = function() {
    if (this.value == "") {
        this.value="Search...";
    }
}