Javascript HTML输入onfocus&;安布尔?
好的,今天我将制作一个帮助器HTML函数。看起来是这样的:Javascript HTML输入onfocus&;安布尔?,javascript,html,effects,onblur,onfocus,Javascript,Html,Effects,Onblur,Onfocus,好的,今天我将制作一个帮助器HTML函数。看起来是这样的: function Input($name,$type,$lable,$value= null){ if (isset($value)) { //if (this.value=='search') this.value = '' echo '<label for="'. $name .'">'. $lable .'</label><input type="'.$type.'" name="
function Input($name,$type,$lable,$value= null){
if (isset($value)) {
//if (this.value=='search') this.value = ''
echo '<label for="'. $name .'">'. $lable .'</label><input type="'.$type.'" name="'. $name .'" id="'. $name .'" value="'.$value.'" onfocus="if (this.value==\''.$value.'\') this.value = \'\' "/>';
}
if (!isset($value)) {
echo '<label for="'. $name .'">'. $lable .'</label><input type="'.$type.'" name="'. $name .'" id="'. $name .'" />';
}
}
函数输入($name、$type、$lable、$value=null){
if(isset(价值)){
//如果(this.value=='search')this.value=''
回显“.$lable.”;
}
如果(!isset($value)){
回显“.$lable.”;
}
}
如您所见,如果您插入一个值,它将执行一些JavaScript,这样当我单击框时,框内的文本将消失
问题:当我们不在输入上时,如何使其具有值?(请查看stackoverflow上的搜索框,但是stackoverflow上的搜索框在我们没有指向输入框后不会返回?可能是使用onblur?我说的对吗
希望你明白我的意思
好吧,因为你们有些人没有明白我的意思
请看
当我没有点击它
当我点击它
当我不再点击它时
应该是
当我没有点击它
当我点击它
当我不再点击它时
如果我理解正确,那么使用这行HTML来实现这一效果
<input name="q" class="textbox" tabindex="1" onfocus="if (this.value=='search') this.value = ''" type="text" maxlength="80" size="28" value="search">
与您的问题无关,但您可以并且应该将第二个if语句替换为else语句
function Input($name,$type,$lable,$value= null){
if (isset($value)) {
//if (this.value=='search') this.value = ''
echo '<label for="'. $name .'">'. $lable .'</label><input type="'.$type.'" name="'. $name .'" id="'. $name .'" value="'.$value.'" onfocus="if (this.value==\''.$value.'\') this.value = \'\' "/>';
}
else {
echo '<label for="'. $name .'">'. $lable .'</label><input type="'.$type.'" name="'. $name .'" id="'. $name .'" />';
}
}
函数输入($name、$type、$lable、$value=null){
if(isset(价值)){
//如果(this.value=='search')this.value=''
回显“.$lable.”;
}
否则{
回显“.$lable.”;
}
}
因为如果isset($value)返回false,那么您就知道它没有被设置,因为它只能返回两个值中的一个,true或false
编辑:忽略此答案。编辑前不清楚问题是什么。查看此页面的源代码显示以下内容
<form id="search" action="/search" method="get">
<div>
<input name="q" class="textbox" tabindex="1"
onfocus="if (this.value=='search') this.value = ''"
type="text" maxlength="80" size="28" value="search">
</div>
您想要这个吗
<input ...
onfocus="if (this.value==this.defaultValue) this.value = ''"
onblur="if (this.value=='') this.value = this.defaultValue" />
更新:一些较新的浏览器只需添加占位符属性即可完成所需操作:
<input placeholder="Please enter your name" />
下面是根据您的代码编写的PHP
echo <<<END
<label for="$name">$lable</label>
<input type="$type" name="$name" id="$name" value="$value"
onfocus="if (this.value==this.defaultValue) this.value = ''"
onblur="if (this.value=='') this.value = this.defaultValue"/>
END;
echo或者,如果您希望无论输入什么文本都将其更改回默认值,请执行此操作
<input ...
onfocus="if (this.value==this.defaultValue) this.value = ''"
onblur="if (this.value!=this.defaultValue) this.value = this.defaultValue" />
试试这个。也许它可以帮助您:
<form action="/search" method="get">
<input type="text" name="q" value="Search..." onfocus="if (this.value == 'Search...') (this.value='')" onblur="if (this.value == '') (this.value='Search...')" />
谢谢你的修复。你的图像消失了。你应该上传它们,而不是像这样:),让我先研究一下:)仍然有一些问题<代码>回显“”$标签'
echo''$标签'代码>工作!谢谢你接受了答案。你为什么还在调查?这正是SO使用的代码。它的行为和你在这个网站上看到的一模一样。你到底为什么要这么做?那么您也可以将其设置为只读。也许您更希望:
这样,如果在输入时未输入文本,您就可以将文本取回。