2015-01-27 3 views
-3

У меня есть форма, которая включает ввод текста для поиска. Я хочу, чтобы отправить форму, когда пользователи хитов ввести в ввода текста, если его значение не равно нулю или равно Search..., вот мой код:Как отправить форму при нажатии клавиши и значении ввода?

<form 
    action="<?php echo MAIN_URL."search"; ?>" 
    method="post" 
    onkeydown="if (event.keyCode == 13 && this.getElementByName('search').value!='') { this.submit(); }"> 
    <input type="submit" name="" value=""> 
    <input type="text" name="search" value="Search..." onclick="if(this.value=='Search...')this.value='';" onblur="if(this.value=='')this.value='Search...';" /> 
</form> 

ответ

1

Прежде всего, вы действительно не хотите иметь «Поиск ...» как/значение/вашего окна ввода в любое время. В эти дни вы используете placeholder атрибут, например, так:

<input type="text" name="search" placeholder="Search..."> 

поддержка браузера меняется (старый IE ...), но есть polyfills доступны. В целом: более чистое, лучшее решение.

Вам не нужно включать любые JS для автоматического отправить форму на enter, но вот код, который предотвращает отправку формы с ней до тех пор, как ваш текст input пуст:

$(document).keypress(function (e) { 
    if (e.which === 13 && $('input[type="text"]').is(':focus')) { 
    if ($('input[type="text"]').val().length < 1) { 
     e.preventDefault(); 
    } 
    } 
}); 

fiddle: http://jsfiddle.net/o6fn7eor/1/

(Я взял свободу использовать jQuery, так как вы отметили свой вопрос)

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