Очистить заполнитель jQuery при отправке - PullRequest
1 голос
/ 06 декабря 2011

Я использую 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('');
        }
      })
    });
});

Когда я сейчас отправляю форму без изменения заполнителей, она использует заполнители в качестве значений.

Можете ли вы сказать мнеКак удалить все значения / заполнители из текстовых полей при нажатии на кнопку отправки?Я видел некоторые решения здесь, но он не работал с атрибутом placeholder.

Вот одно из моих текстовых полей:

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

Вот мое определение формы:

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

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Либо выполните отправку, используя jQuery .submit, либо добавьте обработчик .click к кнопке отправки.Внутри функции вы можете сделать что-то вроде:

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

Это устанавливает значение атрибута "placeholder" в пустую строку.

0 голосов
/ 06 декабря 2011

Это должно очистить все заполнители прямо перед отправкой, если не заполнено фактическим значением

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