Форум → Программирование → JavaScript → Проверка формы на заполнение
Проверка формы на заполнение
Страницы: ← Следующая страница →
-
Есть анкета состоящая из radio button. Несколько вопросов и нужно выбрать да/нет (value 1/0). При выборе ответа ДА появляется доп вопрос тоже radio. Нужно проверить все ли кнопки отмечены и если выбран ответ ДА, проверить выбран ли ответ на доп вопрос.
Подскажите как лучше это реализовать на jQuery. Подумываю на счет each() но не совсем уверен как это сделать. Прописывать проверку вручную для каждого вопроса как-то не хочется. Смысл в том, чтобы пока все поля не будут заполнены должным образом не давать отправить форму.from TRIAL with LOVE -
26 января 2011 г. 12:38, спустя 1 день 1 час 45 минут
Сделал, по моему мнению, адски кривым способом:$(function() {
$("form")
.click(function() {
var button = new Array();
for(var i = 1; i<16; i++) {
var v = $("input[name=q" + i + "]:checked").val();
if(v == "0" || v == "1") button = "1";
else button = "0";
if(v == "1") {
switch(i) {
case 1 :
var value = $("input[name=q1_1]").val();
if(value.length < 1) button[16] = "0";
break;
case 2 :
var value = $("input[name=q2_1]:checked").val();
if(typeof value == "undefined") button[17] = "0";
break;
case 3 :
var v1 = $("input[name=q3_1]").val();
var v2 = $("input[name=q3_2]").val();
var v3 = $("input[name=q3_3]:checked").val();
if(v1.length < 1 || v2.length < 1 || typeof v3 == "undefined") button[18] = "0";
break;
case 5 :
var value = $("input[name=q5_1]:checked").val();
if(typeof value == "undefined") button[19] = "0";
break;
case 6 :
var value = $("input[name=q6_1]:checked").val();
if(typeof value == "undefined") button[20] = "0";
break;
case 7 :
var value = $("input[name=q7_1]:checked").val();
if(typeof value == "undefined") button[21] = "0";
break;
case 9 :
var value = $("input[name=q9_1]:checked").val();
if(typeof value == "undefined") button[22] = "0";
break;
}
}
}
if(jQuery.inArray("0", button) < 0) $("#button").removeAttr("disabled");
else $("#button").attr("disabled", "disabled");
});
});
Кто что скажет толкового? :)
PS. Работает только в ИЕ, придется кнопку как-то иначе скрывать.from TRIAL with LOVE -
26 января 2011 г. 13:12, спустя 34 минуты 45 секунд
Оказалось что $("form") понимает только ИЕ, все остальные браузеры отказываются реагировать на события внутри формы, пришлось заменить на body, пока вроде всё работает.from TRIAL with LOVE -
26 января 2011 г. 13:17, спустя 4 минуты 17 секунд
TRIAL, не помню как в жквери но на прототайпе можно так :$("form").observe('form:changed', function(event){
// your handler
});
как по мне так чуток правильнее -
26 января 2011 г. 13:22, спустя 5 минут 44 секунды
NRG, буээ ну прототайп и гавно)Сапожник без сапог -
26 января 2011 г. 13:26, спустя 3 минуты 58 секунд
phpdude, я имел ввиду чт онадо вешатся не на онклик формы а на ончейндж
NRG, буээ ну прототайп и гавно) -
-
-
26 января 2011 г. 16:09, спустя 2 часа 24 минуты 43 секунды
онсабмит блеатьСпустя 211 сек.<form onsubmit="return validate_function();">
function validate_function(){
x = $('#element_id'); if (!x.val().match(/\S/gi)) { alert('Заполни поле, пидорас!'); x.focus(); return false;}
return true;
}не всё полезно, что в swap полезло -
26 января 2011 г. 16:41, спустя 32 минуты 43 секунды
а ещё можно<form onsubmit="return validate_function(this);">
function validate_function(form){
тут перебираем поля form
}не всё полезно, что в swap полезло -
-
26 января 2011 г. 17:27, спустя 8 минут 19 секунд
Замечательная вещь :)
И сколько браузеров сейчас ее поддерживают?!!from TRIAL with LOVE -
26 января 2011 г. 18:37, спустя 1 час 9 минут 51 секунду
required
проверяет на заполненность но не на соответствие регуляркене всё полезно, что в swap полезло -
27 января 2011 г. 6:48, спустя 12 часов 10 минут 48 секунд
required
проверяет на заполненность но не на соответствие регулярке
тема была не о регулярке или не? ну на этот случай есть patternСпустя 34 сек.
Замечательная вещь :)
И сколько браузеров сейчас ее поддерживают?!!
точно знаю что опера 11 поддерживает остальные хзСпустя 158 сек.вот тут проде можно глянуть:
http://tinyurl.com/html5orly
но хз как часто там обновляют инфуСпустя 87 сек.required сейчас поддерживают chrome safari opera -
27 января 2011 г. 6:59, спустя 10 минут 52 секунды
короче делаете жабаскрипт документ и проверяете если Mozilla то биндите к форме проверочные скрипты через жквериСпустя 47 сек.А ваще нет не через Mozilla ибо chrome и safari тоже mozilla :)
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!