jestem kompletnym noobem, nowy w zasadzie wszystko po tutoriale do zrozumienia, używam jQuery Form PluginjQuery validate - jeśli wybrana jest opcja, nie jest wymagana następna opcja?
Próbuję zrobić formularz, w którym „styk” jest wybrany, a jeśli „telefon "Opcja jest wybrana, a następnie wymaga" czasu kontaktu ", ale jeśli wybrana jest opcja" e-mail ", oznacza to, że" czas kontaktu "nie jest wymagany.
* Formularz html. *
<form id="askquestion" action="questionprocess.php" method="post">
<td><label for="response type">Method of contact:</label></td>
<td><select name="response_type">
<option value="" selected="selected">-- Please select --</option>
<option value="Phone">Phone</option>
<option value="Email">Email</option>
</select></td>
</tr>
<td><label for="response time">Best time to contact:</label></td>
<td><select name="contact_time">
<option value="" selected="selected">-- Please select --</option>
<option value="morning_noon">Morning to Noon</option>
<option value="noon_afternoon">Noon to afternoon</option>
<option value="evenings">Evenings</option>
</select></td>
</tr>
</form>
jQuery Przepisy:
$(function() {
// Validate the contact form
$('#askquestion').validate({
// Specify what the errors should look like
// when they are dynamically added to the form
errorElement: "label",
wrapper: "td",
errorPlacement: function(error, element) {
error.insertBefore(element.parent().parent());
error.wrap("<tr class='error'></tr>");
$("<td></td>").insertBefore(error);
},
// Add requirements to each of the fields
rules: {
response_type: {
required:true,
},
contact_time: {
required:true,
},
zaktualizować. Tak kończy się formularz sprawdzania poprawności.
// Use Ajax to send everything to form processing file
submitHandler: function(form) {
$("#send").attr("value", "Sending...");
$(form).ajaxSubmit({
success: function(responseText, statusText, xhr, $form) {
$(form).slideUp("fast");
$("#response").html(responseText).hide().slideDown("fast");
}
});
return false;
}
});
});
Dzięki za tym, to ma stromą krzywą uczenia się, myślę, że potrzebna nawias zamykający, gdyż nie byłoby zweryfikować każdy. 'code'rules: { response_type: { wymagane: true, }, contact_time: { zależy: function() {return $ ('# askquestion wybierz [name = "response_type"]') (val.) === 'Telefon'; 'kod' Ignoruje wymaganą wartość zarówno dla argumentu response_type, jak i contact_time. –
@FindingMozart, tak, oczywiście, przepraszam, obiekt musi być prawidłowo zamknięty. Edytowałem swoją odpowiedź, aby dodać brakujący nawias. Dzięki. –
Doceniam udzieloną pomoc, tak jak powiedziałem, kompletny noob, rozumiem kod, który dostarczyłeś i próbujesz się uczyć, mam nadzieję, że nie będziesz miał nic przeciwko dalszemu pytaniu o pomoc. Teraz formularz nie wymaga sprawdzania dla contact_time, jeśli wybrano adres e-mail w opcji response_type - co jest świetne, czego chciałem. Jednak wybranie telefonu w formularzu wydaje się łamać formularz i (w lokalnym środowisku innym niż serwer) powoduje wyświetlenie strony php. Czy jest coś, czego mi brakuje? Zgaduję, że wie, że telefon jest wymagany, ale nie wie, co zrobić, gdy zostanie wybrany? –