模糊事件也包括提交按钮/ jquery

时间:2012-04-20 19:00:20

标签: jquery button submit blur

当我在输入文本字段中使用模糊事件时,它包括所有页面,但也提交按钮。那么如何避免模糊事件不包括提交按钮?

这是html代码:

<form>
   <input type="text" value="EMAIL ADDRESS_" id="text" />
   <input type="submit" val="" id="submit" />
</form>

和脚本:

$('form input[type!=submit]').focus(function(){
     $(this).val("");
     });
$('form input[type!=submit]').blur(function(){
     if(this.value==""){
     $(this).val("EMAIL ADDRESS_");
  }
});

我从上一个问题中获取此代码,但它不起作用.Blur事件仍包含提交按钮

2 个答案:

答案 0 :(得分:1)

我认为不应该从选择中避开一个字段,而应该更好地指定要考虑选择的项目。否则,如果有人/你,在未来可能会在表单中添加一个新元素,你可能想知道这种行为(模糊和焦点)来自“刚才添加的元素”!

$(function(){
 $("form input[type='text']").focus(function(){
       $(this).val("");
     });
 $("form input[type='text']").blur(function(){
     if(this.value==""){
        $(this).val("EMAIL ADDRESS_");
      }
  });
});

请注意,您仍然定位所有类型为text 的输入字段。因此,如果可能的话,尝试通过将类名应用于这些元素并将其用作选择器来使其更具体。或者您也可以使用元素的 id

$("form #yourElemntId").focus(function(){
   //do stuff
});

答案 1 :(得分:0)

您的解决方案几乎不错,您只是错过submit

之间的引号
$("form input[type!='submit']").focus(function(){
     $(this).val("");
     });
$("form input[type!='submit']").blur(function(){
     if(this.value==""){
     $(this).val("EMAIL ADDRESS_");
  }
});