验证复选框数组存在以下问题。验证被绕过,已经获取了验证插件的样本,但它不起作用。
// valideren formulier
$('#formulier').validate({
onkeyup: false,
onblur: false,
showErrors: function(errorMap, errorList) {
if(errorList.length > 0) {
$("#dcMessage").dcMessage({type: "error", message: errorList[0]['message']});
}
},
rules: {
gebruikersnaam: {
required : true,
minlength: 4
},
wachtwoord: {
required : true,
minlength: 8
},
wachtwoord2: {
required : true,
minlength: 8,
equalTo: "#wachtwoord"
},
email: {
email: true
},
opdrachtgevers: {
required: true,
minlength: 1
},
groepen: {
required: true,
minlength: 1
}
},
messages: {
gebruikersnaam: {
required : "Gebruikersnaam is verplicht.",
minlength: jQuery.format("Gebruikersnaam moet minimaal uit {0} karakters bestaan.")
},
wachtwoord: {
required : "Wachtwoord is verplicht.",
minlength: jQuery.format("Wachtwoord moet minimaal uit {0} karakters bestaan.")
},
wachtwoord2: {
required : "Herhaal wachtwoord.",
minlength: jQuery.format("Wachtwoord moet minstens uit {0} karakters bestaan."),
equalTo: "Wachtwoord komt niet overeen."
},
email: {
email: "Geen geldig e-mailadres."
},
opdrachtgevers: "Selecteer minimaal één opdrachtgever.",
groepen: "Selecteer minimaal één groep."
},
submitHandler: function(form) {
// submit het formulier
form.submit();
}
});
这是我的表单数据
<div>
<div class="groeplabel">Opdrachtgevers<em>*</em></div>
<div class="groepinput">
<fieldset>
<?php
// query; + 0 om op de juiste manier te sorteren 1,2,3,4,5,6,7,8,9,10,11 (+ 0 => converteer naar nummer)
$sql = "SELECT opdrachtgever_id, bedrijfsnaam FROM dc_opdrachtgevers WHERE prullenbak = '0' ORDER BY bedrijfsnaam ASC";
// uitvoeren query
$result = mysql_query($sql) OR die ("Foutmelding: ".MySQL_errno()." ".MySQL_error());
// opdrachtgevers aanwezig
if(mysql_num_rows($result) > 0) {
// doorlopen opdrachtgevers
while($row = mysql_fetch_assoc($result)) {
echo "<div style=\"float: left;\"><input class=\"checkbox cbgroup\" type=\"checkbox\" name=\"opdrachtgevers[]\" id=\"opdrachtgevers-" . $row["opdrachtgever_id"] . "\" value=\"" . $row["opdrachtgever_id"] . "\" /><label class=\"label\" for=\"opdrachtgevers-" . $row["opdrachtgever_id"] . "\">" . $row["bedrijfsnaam"] . "</label></div>\n";
}
}
?>
</fieldset>
</div>
</div>
<div class="clearb"></div>
<div style="margin-top: 10px; padding-bottom: 10px;">
<div class="groeplabel">Groepen<em>*</em></div>
<div class="groepinput">
<fieldset>
<?php
// query; + 0 om op de juiste manier te sorteren 1,2,3,4,5,6,7,8,9,10,11 (+ 0 => converteer naar nummer)
$sql = "SELECT groep_id, groep_type, groep_naam FROM dc_groepen WHERE prullenbak = '0' ORDER BY groep_type + 0 ASC, groep_naam ASC";
// uitvoeren query
$result = mysql_query($sql) OR die ("Foutmelding: ".MySQL_errno()." ".MySQL_error());
// groepen aanwezig
if(mysql_num_rows($result) > 0) {
// doorlopen groepen
while($row = mysql_fetch_assoc($result)) {
echo "<div style=\"float: left;\"><input class=\"checkbox cbgroup\" type=\"checkbox\" name=\"groepen[]\" id=\"groepen-" . $row["groep_id"] . "\" value=\"" . $row["groep_id"] . "\" /><label class=\"label\" for=\"rechten-" . $row["groep_id"] . "\">" . ($row["groep_type"] == "DC" ? "<font color=\"#F00\">Digicarto " . $row["groep_naam"] . "</font>": $row["groep_naam"]) . "</label></div>\n";
}
}
?>
</fieldset>
</div>
可以找到哪里出错了,请有人帮忙。
这是我的解决方案:
submitHandler: function(form) {
// checkboxen niet goed
if($(".cb_opdrachtgevers:checked").length == 0) {
// opdrachtgevers
$("#dcMessage").dcMessage({type: "error", message: "Selecteer minimaal één opdrachtgever."});
return false;
} else if($(".cb_groepen:checked").length == 0) {
// groepen
$("#dcMessage").dcMessage({type: "error", message: "Selecteer minimaal één groep."});
return false;
} else {
// submit het formulier
form.submit();
}
}