Введите Key Detect + Null Value, тогда форма не должна быть отправлена - PullRequest
0 голосов
/ 09 сентября 2010

У меня есть два текстовых поля как обязательные, а остальные поля нормальные. Теперь я должен определить ключ ввода и отправить форму. Я сделал это, но проблема в том, что когда возникает ошибка (например, поля имеют нулевое значение), тогда я должен прекратить отправку формы, но форма все еще отправляется.

<input autocomplete="off"  type="text" id="first_name"  size="10"
onkeypress="if(event.keyCode == 13){ 
document.getElementById('btn_search').click();
return false;}">

Здесь btn_search - это идентификатор кнопки поиска, и я должен выполнить ее. но когда поле равно нулю, форма не должна быть отправлена. Дайте мне предложение ??

Даже если я делаю отдельную функцию в файле JavaScript, я получаю тот же ответ. На самом деле я столкнулся с этой проблемой в последние 48 часов.

Ответы [ 5 ]

3 голосов
/ 09 сентября 2010

Я бы порекомендовал вам выполнить проверку в действии onsubmit формы вместо обработки нажатий клавиш во входах:

<form action="/foo" onsubmit="return validate();">
    <input autocomplete="off" type="text" id="first_name" size="10" />
    <input type="submit" value="Search" />
</form>

А в вашей validate функции:

function validate() {
    var firstName = document.getElementById('first_name').value;
    var isFormValid = (firstName != '');

    return isFormValid;
}
1 голос
/ 09 сентября 2010

В конце я решаю проблему. Здесь объяснение То, что я упустил, это вернуть значение. Здесь «btn_search» - это идентификатор кнопки, через которую вызывается отдельная функция. В котором я выставил подтверждение. Теперь весь код вставлен сюда. Пожалуйста, посмотрите.

    <input autocomplete="off"  type="text"  id="first_name" 
onkeypress="return enterKeyPress(event);" />

Функция Javascript

//Enter-listener
function enterKeyPress(e)
{
    if (e.keyCode == 13) {
        document.getElementById('btn_search').click();
        return false;
        }
    }

Большое спасибо за предложения.

0 голосов
/ 09 сентября 2010

Просто добавьте его к событию onsubmit в виде

<form action="http://google.com" onsubmit="return (document.getElementById('first_name').value != '')">
    <input autocomplete="off" type="text" id="first_name" size="10" />
</form>​

return (document.getElementById('first_name').value != '') просто возвращает логическое состояние для элемента ввода, если его пустое значение bool будет ложным, так как onsubmit завершится с ошибкойпользователь сначала должен ввести некоторые данные.

0 голосов
/ 09 сентября 2010

Вы тоже можете это сделать:)

<input autocomplete="off"  type="text" id="first_name"  size="10" onkeypress="if(this.value.replace(/^\s+|\s+$/g,'') != '' && event.keyCode == 13){ document.getElementById('btn_search').click(); return false;}">
0 голосов
/ 09 сентября 2010
document.getElementById('btn_search').click(function()
{
if($('#first_name').val() == "") {
// submit form here
}
});

Это проверит, является ли значение "first_name" пустым.Это не будет нулевым, так как это текстовое поле.Или вы хотите проверить наличие текстового поля перед отправкой формы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...