Estoy tratando de escribir una función genérica que pueda usar con el complemento de validación de jquery que hará que un campo sea obligatorio en función del valor de otro campo. Esto es lo que quiero que suceda:Manera genérica de obtener el valor de una entrada independientemente del tipo
- Si el valor del campo 1 se encuentra en una gama de valores especificada (actualmente probando con "No", "n/a", y "0"), o está vacía, no hacer nada . De lo contrario, haga que se requiera el campo 2.
Obtener el valor del campo 1 es el problema. No tuve problemas para resolver esto con una entrada de tipo texto o <select>
, pero estoy intentando que funcione con radios y que tenga dificultades. He aquí un extracto de mi código:
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;
}
Esto funciona para todo lo que necesito excepto las radios, ya que parece leer el valor del primer radio, independientemente de si se ha marcado o no.
El campo que activará el "requerida" bien será una de las diversas entradas de texto (text
, url
, email
, etc.), un <select>
, o un solo conjunto de elección de radios. Sin opción múltiple. Pasaré esta función como un parámetro al required
en mi configuración de validación de jquery para cada campo al que deseo que se aplique. El atributo name
del campo "otro" que se evalúa estará disponible para él.
Aquí está mi demo hasta ahora, un poco feo, pero hay notas: http://jsfiddle.net/uUdX2/3/
He intentado un montón de diferentes maneras usando is(':checked')
y el selector :checked
, pero todos ellos han fracasado. Los eliminé de la demostración porque no funcionaron.
¿Qué necesito para que esto funcione con las radios y de tipo texto o entradas de selección, sin saber qué tipo de entrada será?
No estoy seguro de por qué no pensé en esto yo mismo, esto funciona a la perfección. Creo que esto también debería funcionar para entradas de opción múltiple si lo necesito. A veces solo necesitamos otro par de ojos después de un largo día. Muchas gracias. –
Me alegro de que te haya ayudado, gracias. – ShankarSangoli