Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 25 Май, 2012, 10:06:15

Страниц: [1] 2 3 4
Печать
Автор Тема: Проверка формы на заполнение  (Прочитано 956 раз)
0 Пользователей и 1 Гость смотрят эту тему.
TRIAL    ↓ 
25 Январь, 2011, 10:52:22
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

Есть анкета состоящая из radio button. Несколько вопросов и нужно выбрать да/нет (value 1/0). При выборе ответа ДА появляется доп вопрос тоже radio. Нужно проверить все ли кнопки отмечены и если выбран ответ ДА, проверить выбран ли ответ на доп вопрос.
Подскажите как лучше это реализовать на jQuery. Подумываю на счет each() но не совсем уверен как это сделать. Прописывать проверку вручную для каждого вопроса как-то не хочется. Смысл в том, чтобы пока все поля не будут заполнены должным образом не давать отправить форму.
Записан

from TRIAL with LOVE
TRIAL    ↓ 
26 Январь, 2011, 12:38:09 , спустя 1 день 1 час 45 минут 47 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

Сделал, по моему мнению, адски кривым способом:
Javascript
$(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[i] = "1";
                else button[i] = "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. Работает только в ИЕ, придется кнопку как-то иначе скрывать.
« Последнее редактирование: 26 Январь, 2011, 12:38:09 от TRIAL » Записан

from TRIAL with LOVE
TRIAL    ↓ 
26 Январь, 2011, 01:12:54 , спустя 34 минуты 45 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

Оказалось что $("form") понимает только ИЕ, все остальные браузеры отказываются реагировать на события внутри формы, пришлось заменить на body, пока вроде всё работает.
Записан

from TRIAL with LOVE
NRG    ↓ 
26 Январь, 2011, 01:17:11 , спустя 4 минуты 17 секунд
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81

TRIAL, не помню как в жквери но на прототайпе можно так :
Javascript
$("form").observe('form:changed', function(event){
    // your handler
});
как по мне так чуток правильнее
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
phpdude    ↓ 
26 Январь, 2011, 01:22:55 , спустя 5 минут 44 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66

NRG, буээ ну прототайп и гавно)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
NRG    ↓ 
26 Январь, 2011, 01:26:53 , спустя 3 минуты 58 секунд
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81


NRG, буээ ну прототайп и гавно)
phpdude, я имел ввиду чт онадо вешатся не на онклик формы а на ончейндж
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
phpdude    ↓ 
26 Январь, 2011, 01:43:26 , спустя 16 минут 33 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: д-о-х-у-я!
Сила слова: 1.66

NRG, согласись гавно =)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
NRG    ↓ 
26 Январь, 2011, 01:44:24 , спустя 58 секунд
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81

по сравнению с жуквери - да, говноватенько
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
master    ↓ 
26 Январь, 2011, 04:09:07 , спустя 2 часа 24 минуты 43 секунды
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

онсабмит блеать
Спустя 3 минуты 31 секунду добавил
HTML
<form onsubmit="return validate_function();">

Javascript

function validate_function(){
x = $('#element_id'); if (!x.val().match(/\S/gi)) { alert('Заполни поле, пидорас!'); x.focus(); return false;}
return true;
}
 
Записан

master    ↓ 
26 Январь, 2011, 04:41:50 , спустя 32 минуты 43 секунды
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

а ещё можно
 
HTML
<form onsubmit="return validate_function(this);">

Javascript

function validate_function(form){
тут перебираем поля form
}
 
Записан

fgets    ↓ 
26 Январь, 2011, 05:19:32 , спустя 37 минут 42 секунды
НЕ ХУЕТА! ХУЕТА!


Карма: -1
Сообщений: 1119
Сила слова: -0.09

Бедняжки, required вам в помощь
Записан

эй детка не ссы в бассейн

Если в бочку с говном положить ложку меда — получится бочка говна. Если в бочку с медом положить ложку говна, не обольщайтесь ...
TRIAL    ↓ 
26 Январь, 2011, 05:27:51 , спустя 8 минут 19 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

Замечательная вещь :)
И сколько браузеров сейчас ее поддерживают?!!
Записан

from TRIAL with LOVE
master    ↓ 
26 Январь, 2011, 06:37:42 , спустя 1 час 9 минут 51 секунду
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

required
проверяет на заполненность но не на соответствие регулярке
Записан

fgets    ↓ 
27 Январь, 2011, 06:48:30 , спустя 12 часов 10 минут 48 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: -1
Сообщений: 1119
Сила слова: -0.09


required
проверяет на заполненность но не на соответствие регулярке

тема была не о регулярке или не? ну на этот случай есть pattern
Спустя 34 секунды добавил

Замечательная вещь :)
И сколько браузеров сейчас ее поддерживают?!!

точно знаю что опера 11 поддерживает остальные хз
Спустя 2 минуты 38 секунд добавил
вот тут проде можно глянуть:
http://tinyurl.com/html5orly
 
но хз как часто там обновляют инфу
Спустя 1 минуту 27 секунд добавил
required сейчас поддерживают chrome safari opera
Записан

эй детка не ссы в бассейн

Если в бочку с говном положить ложку меда — получится бочка говна. Если в бочку с медом положить ложку говна, не обольщайтесь ...
fgets    ↓ 
27 Январь, 2011, 06:59:22 , спустя 10 минут 52 секунды
НЕ ХУЕТА! ХУЕТА!


Карма: -1
Сообщений: 1119
Сила слова: -0.09

короче делаете жабаскрипт документ и проверяете если Mozilla то биндите к форме проверочные скрипты через жквери
Спустя 47 секунд добавил
А ваще нет не через Mozilla ибо chrome и safari тоже mozilla :)
Записан

эй детка не ссы в бассейн

Если в бочку с говном положить ложку меда — получится бочка говна. Если в бочку с медом положить ложку говна, не обольщайтесь ...
Страниц: [1] 2 3 4
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, Frozzeg, mario