1

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

这是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 事件仍然包括提交按钮

4

2 回答 2

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
});
于 2012-04-20T19:05:05.300 回答
0

您的解决方案几乎很好,您只是缺少之间的引号submit

$("form input[type!='submit']").focus(function(){
     $(this).val("");
     });
$("form input[type!='submit']").blur(function(){
     if(this.value==""){
     $(this).val("EMAIL ADDRESS_");
  }
});
于 2012-06-07T15:26:05.260 回答