昨天我发了这个帖子。 :alert is not cooperating with input
我按照我的意愿让它工作,但在某些地方不会使用 #tjek ,例如,如果您忘记点击复选框,那么它将会不起来说“嘿,你错过的只是这个复选框,”
问题是 #tjek 在我们继续前进之前没有回来告诉你错过了所有这些。
换句话说,看来,“ Jeg godkender brugerbetingelserne ”
HTML
<form name="opretbruger" action="<?php $_SERVER['PHP_SELF'];?>" method="post" id="opretbruger">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td>Brugernavn</td>
<td><input type="email" name="email" class="opretbar" id="brugernavn"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="pa2" class="opretbar" id="pass2"></td>
</tr>
<tr>
<td>Fornavn</td>
<td><input type="text" name="fornavn" class="opretbar" id="fornavn"></td>
</tr>
<tr>
<td>Efternavn</td>
<td><input type="text" name="efternavn" class="opretbar" id="efternavn"></td>
</tr>
<tr>
<td>Betingelserne</td>
<td><input type="checkbox" name="tjek" id="tjek"> Jeg godkender <a href="/brugerbetingelser/">brugerbetingelserne</a></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="tilmelddiggratis" value="Opret bruger" class="click opretbruger"></td>
</tr>
</table>
</form>
jQuery的:
$(function () {
var $opretbruger = $('form[name="opretbruger"]'),
$pwd = $("#pass2"),
$usr = $("#brugernavn"),
$navn = $("#fornavn"),
$efter = $("#efternavn"),
$tjek = $("#tjek");
$opretbruger.on("submit", function (event) {
var msg = "Du mangler ",
usr = ($usr.val().trim() !== ""),
pwd = ($pwd.val().trim() !== ""),
navn = ($navn.val().trim() !== ""),
efter = ($efter.val().trim() !== ""),
tjek = ($tjek.val().trim() !== "");
msg += !usr ? "brugernavn" : "";
msg += !usr && !pwd ? ", " : "";
msg += !pwd ? "kodeord" : "";
msg += !usr && !pwd && !navn ? ", " : "";
msg += !navn ? "fornavn" : "";
msg += !usr && !pwd && !navn && !efter ? ", " : "";
msg += !efter ? "efternavn" : "";
msg += !usr && !pwd && !navn && !efter && !tjek ? ", " : "";
msg += !tjek ? "Jeg godkender brugerbetingelserne!" : "";
var valid = pwd && usr && navn && efter && tjek;
if (!valid) {
alert(msg);
}
return valid;
});
});
答案 0 :(得分:2)
您需要检查“已检查”属性的状态,而不是选中复选框的值:
tjek = $tjek.prop("checked");
如果选中此复选框,则为true
,否则为false
。
该复选框根本没有“value”属性,因此“value”属性将始终为空。