2012-12-27 3 views
1

При создании эквивалента заполнителя jquery я столкнулся с проблемой отправки формы. В настоящее время значение изменяется в фокусе/фокусе, но проблема, с которой я сталкиваюсь, - это поле can not be blank, но проверка формы читает значение по умолчанию в качестве значения, чтобы оно позволяло это. Я попытался сделать чек для submit() и onclick(). Onclick для кнопки отправки и отправьте для самой формы. Ничего не сработало. Мне нужно проверить, когда он отправлен, если значения являются значениями по умолчанию или нет. И если они есть, надеемся, сделайте так, чтобы он сделал значение пустым перед подачей. Таким образом, drupals, построенный в системе ошибок, будет запускать, а не строить мои собственные.JQuery эквивалент HTML-заполнителя

Текущий код для текста заполнителя.

if ($.browser.msie) { 
    // for name field 
    $('#edit-submitted-name').focus(function(){ 
     if ($('#edit-submitted-name').val() == 'Name...') { 
      $(this).val(''); 
      $(this).css('color', '#000'); 
     } 
    }); 
    $('#edit-submitted-name').focusout(function(){ 
     if (!$('#edit-submitted-name').val()) { 
      $(this).val('Name...'); 
      $(this).css('color', '#abadb3'); 
     } 
    }); 
    //for email address field 
    $('#edit-submitted-email-address').focus(function(){ 
     if ($('#edit-submitted-email-address').val() == 'Email Address...') { 
      $(this).val(''); 
      $(this).css('color', '#000'); 
     } 
    }); 
    $('#edit-submitted-email-address').focusout(function(){ 
     if (!$('#edit-submitted-email-address').val()) { 
      $(this).val('Email Address...'); 
      $(this).css('color', '#abadb3'); 
     } 
    }); 
    // for email field 
    $('#edit-submitted-email').focus(function(){ 
     if ($('#edit-submitted-email').val() == 'Email...') { 
      $(this).val(''); 
      $(this).css('color', '#000'); 
     } 
    }); 
    $('#edit-submitted-email').focusout(function(){ 
     if (!$('#edit-submitted-email').val()) { 
      $(this).val('Email...'); 
      $(this).css('color', '#abadb3'); 
     } 
    }); 

    $('#edit-submitted-name').val('Name...'); 
    $('#edit-submitted-name').css('color', '#abadb3'); 
    $('#edit-submitted-email-address').val('Email Address...'); 
    $('#edit-submitted-email-address').css('color', '#abadb3'); 
    $('#edit-submitted-email').val('Email...'); 
    $('#edit-submitted-email').css('color', '#abadb3'); 

} 
+0

Это может быть хорошей идеей сделать этот код более общим. Вы создали конкретные решения для определенных полей. Это хорошо ... но что, если вы все еще использовали атрибут placeholder HTML5 для определения «Email», а затем с jQuery сделал что-то вроде ... $ («input [placeholder]»). Focus (...); чтобы поменять текст, когда вы сфокусировали любое поле, содержащее атрибут placeholder. Это значительно сократило бы количество кода, который у вас здесь есть. – Webnet

ответ

0

Это отлично работает для меня.

$('form.webform-client-form input#edit-submit').click(function(){ 
     if ($('#edit-submitted-name').val() == 'Name...') { 
      $('#edit-submitted-name').val(''); 
      $('form.webform-client-form').submit(); 
     } 
     if ($('#edit-submitted-email-address').val() == 'Email Address...') { 
      $('#edit-submitted-email-address').val(''); 
      $('form.webform-client-form').submit(); 
     } 
     if ($('#edit-submitted-email').val() == 'Email...') { 
      $('#edit-submitted-email').val(''); 
      $('form.webform-client-form').submit(); 
     } 
    }); 
+1

'$ ('form.webform-client-form input # edit-submit')' только нужно быть '$ ('# edit-submit')', если у вас нет 2 кнопки на странице с тот же идентификатор. – Webnet

+0

Даже если вы попытались использовать один и тот же идентификатор дважды, будет возвращено только первое. – EpicVoyage

0

Я не думаю, что вам нужен плагин что-то вроде это. Кажется, что это, вероятно, слишком много.

Вы говорите, что вы сделали что-то вроде ....

$('#formId').submit(function() { 
    //check all inputs in the form, if their values match the placeholders then remove the values 

    //returning true or false here will either continue form submission or stop it (i think) 
}); 

Когда вы проверяете элемент, видите ли вы какие-либо обработчик событий на бирке? Инспектор Google Chrome имеет раздел под CSS для элемента, который покажет вам прослушиватели событий. Это поможет вам проверить, добавлено ли что-либо в качестве onSubmit

+0

Проблема с этим, так это я должен использовать свою собственную систему ошибок. Я попробую, хотя –

 Смежные вопросы

  • Нет связанных вопросов^_^