Общий способ получить значение ввод независимо от типа

Я пытаюсь написать общую функцию, которую можно использовать с подключаемым модулем проверки jquery. в этом поле будет обязательным на основе значения другого поля. Вот что я хочу сделать:

  • Если значение поля 1 находится в указанном массиве значений (в настоящее время тестируется с «Нет», «н / д» и «0») или пусто, ничего не делать. В противном случае сделайте поле 2 обязательным.

Получение значения поля 1 является проблемой. У меня не было проблем с выяснением этого с помощью ввода типа text или , но я пытаюсь заставить его работать с радио и испытываю трудности. Вот отрывок из моего кода:

var value = $('[name="option"]').val(),
    empty = ['no', '', 'n/a', '0'];

// If the input is not "empty", make the additional field required
if ($.inArray(value.toLowerCase(), empty) < 0) { // returns -1 if not found
    required = true;
} else {
    required = false;
}

Это работает для всего, что мне нужно, кроме радиоприемников, потому что кажется, что оно считывает значение первого радиомодуля, независимо от того, было оно проверено или нет.

Поле, которое будет триггер "требуется" будет либо одним из различных текстовых вводов ( текст , url , email и т. д.), или набор радиостанций с одним выбором. Нет множественного выбора. Я передам эту функцию в качестве параметра required в моей конфигурации проверки jquery для каждого поля, к которому я хочу ее применить. Атрибут name оцениваемого поля "other" будет ему доступен.

Вот моя демонстрация, некрасивая, но с примечаниями: http: // jsfiddle. net / uUdX2 / 3 /

Я пробовал несколько разных способов, используя is (': checked') и селектор : checked , но все они потерпели неудачу. Я удалил их из демонстрации, потому что они не работали.

Что мне нужно, чтобы это работало с радио и текстового типа или выбора входов, не зная, какой это будет вход?

6
задан Wesley Murch 14 August 2011 в 20:06
поделиться