Использовать проверки html5, даже если форма никогда не отправляется? - PullRequest
3 голосов
/ 14 февраля 2012

Что я делаю, так это ловлю действие click на кнопке отправки моей формы, preventDefault() выполняю ее, выполняю некоторые вычисления, а затем выполняю вызов ajax вместо отправки формы.

Есть ли способ использовать javascript для принудительного запуска валидаторов html5, даже если форма не отправляется?

 $('#submitButton').click(function (e) {
        e.preventDefault(); //stop the form from submitting

        //Do computation

        $.post('/comments', values, function(results) {
            hideForm($('#new_comment_' + parentId));
            parent.children('.children').prepend(results);
        }, 'html');
    });

Ответы [ 2 ]

8 голосов
/ 14 февраля 2012

Работает просто отлично, я тестировал в последних Chrome и Firefox.Просто e.preventDefault() на <form>:

html:

<form method="post" action="test.html">
    <input type="text" required></input>
    <input type="submit" value="Submit">
</form>

jQ:

$('form').submit(function(e){ e.preventDefault(); });

пример: http://jsfiddle.net/elclanrs/2nnLc/2/

3 голосов
/ 14 февраля 2012

Используя ограничения html5, объект формы имеет несколько новых методов. Например, вы можете вызвать checkValidity () для объекта формы, чтобы проверить ввод.

<form method="post" action="test.html" id="myForm">
    <input type="text" required></input>
    <input type="submit" value="Submit" id="submitButton">
</form>

<script type="text/javascript">
    $('#submitButton').click(function (e) {
        e.preventDefault();
        alert($("#myForm").get()[0].checkValidity());
    })
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...