слушатель события формы jquery - PullRequest
1 голос
/ 02 мая 2011

можно сделать прослушиватель событий для формы, так что если кто-либо не совершил действие (например, выберите какой-либо элемент из списка), форма НЕ будет отправлена, и в итоге отобразится предупреждение?

спасибо!

Ответы [ 3 ]

3 голосов
/ 02 мая 2011

Возможно, действительно.Самый простой способ - обработать событие change всех элементов, поднять там глобальный флаг, а затем проверить этот флаг в событии submit:

$("#Form1 input,textarea,select").each(function() {
    $(this).change(function() {
        window["canSubmit"] = true;
    });
});

$("#Form1").submit(function() {
    if (window["canSubmit"] === true)
        return true;
    alert("Please fill the form");
    return false;
});

Тестовый случай: http://jsfiddle.net/Wahr2/

1 голос
/ 02 мая 2011

Это должно работать.http://jsfiddle.net/eLgEZ/

<form id="form">
    <input type="checkbox" onclick="$('#form').data('valuesChanged',true)"/>
    <input type="submit" value="submit" onclick="if($('#form').data('valuesChanged') == undefined){alert('iiik')}else{alert('ok lets submit')};return false"/>
</form>

Однако вам потребуется добавить прослушиватель для всех элементов формы, который при изменении установит данные формы 'valuesChanged'

EDIT

просто запомните, чтобы удалить "return false" в конце оператора onclick кнопки submit.

1 голос
/ 02 мая 2011

Вы можете подключить это действие (выбрать любой элемент из списка) одним нажатием кнопки отправки и проверить, выбран ли какой-либо из элементов списка или нет, иначе выдается предупреждение

$(document).ready(function() 
{
    $('#Submit').click(function(){   
    if (!$("#mySelect option:selected").length)
        alert("Select a value"); 
    });
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...