在提交时清除jQuery占位符

时间:2011-12-06 14:19:38

标签: jquery html placeholder

我使用jQuery来模拟HTML5占位符函数:

// placeholder code
$(function() {
    $('[placeholder]').focus(function() {
      var input = $(this);
      if (input.val() == input.attr('placeholder')) {
        input.val('');
        input.removeClass('placeholder');
      }
    }).blur(function() {
      var input = $(this);
      if (input.val() == '' || input.val() == input.attr('placeholder')) {
        input.addClass('placeholder');
        input.val(input.attr('placeholder'));
      }
    }).blur().parents('form').submit(function() {
      $(this).find('[placeholder]').each(function() {
        var input = $(this);
        if (input.val() == input.attr('placeholder')) {
          input.val('');
        }
      })
    });
});

当我现在提交表单而不更改占位符时,它会使用占位符作为值。

您能告诉我如何在单击提交按钮时从文本字段中删除所有值/占位符吗?我在这里看到了一些解决方案,但它不适用于占位符属性。

这是我的一个文本字段:

<input class="frmInputLong" name="inptName" type="text" value="" placeholder="Peter Smith">

这是我的表单定义:

<form id="frmBook" method="post" action="doSomething" >

2 个答案:

答案 0 :(得分:3)

使用jQuery的.submit执行提交,或者在提交按钮中添加.click处理程序。在函数内部,您可以执行以下操作:

$("input").attr("placeholder", "");

这会将属性“placeholder”的值设置为空字符串。

答案 1 :(得分:0)

除非填写实际值,否则应在提交前清除所有占位符

$("form:has(.placeholder)").live("submit", function(e){
  $(this).find(".placeholder").val("");
});