Sto cercando di assicurarmi che l'utente inserisca 1 di 2 campi, "ExactOrderSize" o "approxOrderSize".jQuery Validator, effettua entrambi i campi richiesti
<p>Exact size of your order (# of items)</p>
<input id="ExactOrderSize" type="text" name="ExactOrderSize">
<p>Approximate size of your order</p>
<select id="approxOrderSize" name="approxOrderSize" >
<option value="" selected="selected"></option>
<option value="0">0-35</option>
<option value="35">35-50</option>
<option value="50">50-100</option>
</select>
Per fare ciò, sto utilizzando l'aiuto di jQuery Validator. Tutto funziona bene con esso, ad eccezione di questa regola di convalida personalizzata, che sembra non fare nulla.
$('#quoteform').validate({
rules: {
FirstName: {
required: true
},
LastName: {
required: true
},
approxOrderSize: {
required: function() {
if($('#ExactOrderSize').val()=="")
return true;
else
return false;
}
},
DateNeededBy: {
required: true
}
}
});
La mia idea era quella di eseguire fondamentalmente una funzione che, se il campo #ExactOrderSize
non è stato compilato, ha reso il campo #approxOrderSize
richiesto. Anche noto come set required = true
Ciò che abbiamo scoperto dalle risposte StackOverflow finora è che i problemi si trovano nei due campi potenzialmente nascosti. Quando inizialmente la pagina non carica, vengono visualizzati inizialmente #ExactOrderSize o #approxOrderSize.
Devono fare clic su uno di questi due pulsanti per mostrare quel campo:
A seconda di quale pulsante selezionano, un'animazione presentazioni campo appropriato.
"Sì" -> mostra il campo #ExactOrderSize
"No" -> mostra il campo #approxOrderSize
ho pensato che questo sarebbe un bella interfaccia utente, ma a quanto pare sta causando problemi con i messaggi di convalida in grado di mostrare, il che rende la validazione di jQuery non funziona.
Come soluzione ho provato:
$('#quoteform').submit(function() {
$('#not-exact').show();
$('#yes-exact').show();
});
In questo modo tutti i campi sarebbero mostrando dopo che il modulo invia .. ma ancora non funziona.
P.S. La pagina attuale è HERE se vuoi guardarla.
@ Michael Hamilton grazie per il vostro contributo, ho curato la domanda per riflettere ulteriormente la comprensione del problema. –