Проверка значений поля формы перед отправкой этой страницы - PullRequest
11 голосов
/ 19 июля 2010

Я написал следующую функцию, которая проверяет, является ли поле start_date не пустым, и отображает правильное сообщение при нажатии кнопки отправки. Но затем он берет управление на предыдущую страницу. Таким образом, пользователь должен снова написать все остальные поля в этой форме. Есть ли способ остаться на этой странице даже после появления сообщения об ошибке со всеми другими значениями полей.

//JavaScript
function checkform() {
    if(document.frmMr.start_date.value == "") {
        alert("please enter start_date");
        return false;
    } else {
        document.frmMr.submit();
    }
}

// HTML
<html>
    <form name=frmMr action="page1.jsp">
        Enter Start date:
        <input type="text" size="15" name="start_date" id="start_date">
        <input type="submit" name="continue" value="submit" onClick="checkform();">
    </form>
</html>

Заранее спасибо

Ответы [ 4 ]

19 голосов
/ 19 июля 2010

Хотя у вас есть возвращаемое значение в контрольной форме, оно нигде не используется - попробуйте вместо этого использовать onclick="return checkform()".

Возможно, вы захотите заменить этот метод на onsubmit="return checkform()" вместо тега формы, хотя оба будут работать для нажатия кнопки.

6 голосов
/ 29 июня 2015

Вы можете просто сделать требуемую начальную дату, используя

<input type="submit" value="Submit" required />

. Тогда вам даже не нужна checkform ().

Спасибо

0 голосов
/ 13 апреля 2013

используйте return перед вызовом функции, пока вы нажимаете кнопку отправки, произойдут два события (отправка формы при использовании кнопки отправки и вызов функции для onclick), чтобы предотвратить отправку формы, вы должны вернуть false, вы это сделали Также вы должны указать возвращаемое значение, т. е. ожидать значения от функции,

это код:

input type="submit" name="continue" value="submit" onClick="**return** checkform();"
0 голосов
/ 19 июля 2010

Не знаю точно, но звучит так, как будто все еще подает. Я быстрое решение было бы изменить ваш (угадывая ваш код здесь):

<input type="submit" value="Submit" onclick="checkform()">

на кнопку:

<input type="button" value="Submit" onclick="checkform()">

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

Существуют и другие, возможно, лучшие способы справиться с этим, но в то же время это работает.

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