出现警告框,我接受使用条款

时间:2013-12-21 15:38:38

标签: javascript jquery html

昨天我发了这个帖子。 :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;
    });
});

1 个答案:

答案 0 :(得分:2)

您需要检查“已检查”属性的状态,而不是选中复选框的

    tjek = $tjek.prop("checked");

如果选中此复选框,则为true,否则为false

该复选框根本没有“value”属性,因此“value”属性将始终为空。