Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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 OffClick()函数_Javascript_Jquery_Dom_Label - Fatal编程技术网

Javascript OffClick()函数

Javascript OffClick()函数,javascript,jquery,dom,label,Javascript,Jquery,Dom,Label,所以我有一个联系人表单,我想在每个输入中输入文本,当用户点击它时,文本消失,这样他们可以添加内容-当用户点击其他内容时,文本重新出现。我用标签和负边距以及相对位置完成了这项工作。我计划在每个输入中添加一个onclick函数 我的问题是-是否有类似Offclick()的函数?或者类似于mouseOver()和MouseOut()的东西?文本输入有onblur,选择框有onchange事件可以连接到 <input type="text" id="UserName" name="UserName

所以我有一个联系人表单,我想在每个输入中输入文本,当用户点击它时,文本消失,这样他们可以添加内容-当用户点击其他内容时,文本重新出现。我用标签和负边距以及相对位置完成了这项工作。我计划在每个输入中添加一个onclick函数


我的问题是-是否有类似Offclick()的函数?或者类似于mouseOver()和MouseOut()的东西?

文本输入有
onblur
,选择框有
onchange
事件可以连接到

<input type="text" id="UserName" name="UserName" value="Placeholder ..." />

<script type="text/javascript">
var el = document.getElementById("UserName");
var original_text = el.value;
el.onblur = function() {
    // `this` is set to the input element by the browser
    if ( ! this.value ) {
        this.value = original_text;
    }
};
</script>

将标题属性设置为文本框的值,然后写入:

$("input[type=text]").bind("focus",function(){
var $this = $(this);
if($this.attr("title") ==$this.val()){
$this.val('');
}).bind("blur",function(){

var $this = $(this);
if($this.val() ==''){
$this.val($this.attr("title"));
});
或者您可以使用现成的解决方案,如:

所以我可以用onblur()函数来添加文本,而不是标签和边距,嗯?@Howdy_McGee-绝对可以。如果您愿意,您可以使用HTML5
占位符
属性来获得效果,而不需要在支持的浏览器中使用任何JavaScript。有了HTML5,我就解决了IE8的问题:(-有一天,我将能够有效地使用HTML5,这可能是
$("input[type=text]").bind("focus",function(){
var $this = $(this);
if($this.attr("title") ==$this.val()){
$this.val('');
}).bind("blur",function(){

var $this = $(this);
if($this.val() ==''){
$this.val($this.attr("title"));
});