javascript - 出现警告框,并显示我接受使用条款

标签 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;
    });
});

最佳答案

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

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

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

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

关于javascript - 出现警告框,并显示我接受使用条款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20720624/

相关文章:

javascript - 数组元素在服务器和浏览器之间丢失

javascript - 单击 Chrome 扩展程序图标时打开 iFrame

javascript - 在不使用 css 文本转换的情况下,在用户键入时将文本字段中的文本大写?

java - 动态添加html选择到表单

html - 选项更改时单选按钮 "Checked=checked"不更改

javascript - 如何使用javascript动态附加卡?

javascript - jQuery 或下划线按跨度文本对列表进行排序

jquery - 使用 jquery 获取 css 属性

javascript - 如何在固定标题上滚动内容?

javascript - 如何在html中创建新标签