2015-11-26 2 views
1

Я использую плагин jquery для размещения текстовых полей в IE9, и это дает мне проблему.Ошибка размещения в IE9, jQuery plugin/html

Существует страница, на которой пользователь может выбрать одно имя пользователя, которое подбирает его или записывает в текстовое поле. Этот плагин добавляет атрибут value к этому входному тексту в IE9 для имитации местазаполнителя. Все отлично, но ..

Я получаю ошибку проверки, как если бы текст ввода был заполнен неправильно, неправильно заполнен поддельным заполнителем, который отправляется в форму. Я пытаюсь удалить этот атрибут из ввода, если используется IE9 при отправке формы, но либо удаляет атрибуты, либо запускает перезагрузку с помощью jquery. Я попробовал несколько вещей, но не повезло.

Я хотел бы удалить или удалить это значение, отправленное в форму, если атрибут value равен содержимому того, что должно быть заполнителем («Тип Username» в этом случае), можно ли сбросить или удалить значение ввода из события отправки перед его отправкой?

Я пытался что-то вроде этого:

jQuery('button[type=submit]').on('click', function() { 

    if (jQuery('#customUsername').val().indexOf('Type Username') >= 0) { 
     jQuery('#customUsername').trigger('reset'); 
     jQuery('#customUsername').removeAttr('value'); 
     jQuery('#customUsername').removeAttr('placeholder'); 
    } 

}); 

но это время отправки и получения ошибки проверки ...

Спасибо большое!

+0

заведите jsfiddle – SHANib

+1

Вы должны предотвратить событие по умолчанию, и отправить форму ** после ** удаления атрибутов и сброс материала. – Raptor

+0

FYI: Неправильно проверять правильность проверки формы на кнопку «отправить», использовать событие 'submit' для' form' –

ответ

1

Поскольку <button type="submit"> по умолчанию отправит форму, сначала следует удалить поведение по умолчанию на event.preventDefault(), а затем выполнить нужные действия. Наконец, вы можете отправить форму функцией .submit(). Пример кода выглядит следующим образом:

$('button[type=submit]').click(function(event) { 
    event.preventDefault(); 
    if ($('#customUsername').val().indexOf('Type Username') >= 0) { 
     $('#customUsername').trigger('reset'); 
     $('#customUsername').removeAttr('value'); 
     $('#customUsername').removeAttr('placeholder'); 
     $('#frm').submit(); 
    } 
}); 
+1

спасибо, отлично работает – agapitocandemor

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