它不会给代码部分留出空间

时间:2014-03-21 15:07:18

标签: javascript jquery html

如果我在此表单中填写名称和姓氏但缺少电子邮件和密码,您将会看到它并写成如下:

" Du mangler adgangskodeprofilbillede "

我希望表带是这样的:

" Du mangler adgangskode,profilbillede "

它也可能是缺少的第一个和最后一个名字,但仍然必须这样做。

但如果我没有在内容中写任何内容,那么很可能会回来并写得很好,即

" Du mangler电子邮件,密码,Fornavn,Efternavn,Profilbillede "

我用丹麦语写了一些,所以我们也可能只看到错误

$(function () {
    var $opretbruger = $('form[name="opretbruger"]'),
    $usr = $("#email"),
    $pwd = $("#pass1"),
    $navn = $("#fornavn"),
    $efter = $("#efternavn"),
    $pb = $("#pb");

    $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() !== ""),
        pb = ($efter.val().trim() !== "");

        msg += !usr ? "E-mail" : "";
    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 && !pb ? ", " : "";
        msg += !pb ? "Profilbillede" : "";

        var valid = pwd && usr && navn && efter;
        if (!valid) {
            alert(msg);
        }

        return valid;
    });
});

EIDT

    $(function () {
    var $opretbruger = $('form[name="opretbruger"]'),
        $usr = $("#email"),
        $pwd = $("#pass1"),
        $navn = $("#fornavn"),
        $efter = $("#efternavn"),
        $pb = $("#pb");

    $opretbruger.on("submit", function (event) {

        var errors = [],
        valid = true,
        usr = ($usr.val().trim() !== ""),
        pwd = ($pwd.val().trim() !== ""),
        navn = ($navn.val().trim() !== ""),
        efter = ($efter.val().trim() !== ""),
        pb = ($efter.val().trim() !== "");

        if (!usr) errors.push("E-mail");
        if (!pwd) errors.push ("kodeord");
        if (!navn) errors.push("Fornavn");
        if (!efter) errors.push ("Efternavn");
        if (!pb) errors.push("Profilbillede");

        if (errors.length) {
            var last = errors.length>1 ? ((errors.length>2) ? "," : "") + " & " + errors.pop() : "";
            var "Du mangler " + msg = errors.join(", ") + last;
            valid = false;
            alert(msg);
        }

        return valid;

    });
});

1 个答案:

答案 0 :(得分:1)

所有字符串添加的内容是什么,只需使用带连接的数组

$opretbruger.on("submit", function (event) {

    var errors = [],
    valid = true,
    usr = ($usr.val().trim() !== ""),
    pwd = ($pwd.val().trim() !== ""),
    navn = ($navn.val().trim() !== ""),
    efter = ($efter.val().trim() !== ""),
    pb = ($efter.val().trim() !== "");

    if (!usr) errors.push("E-mail");
    if (!pwd) errors.push ("kodeord");
    /* rest of checks here */

    if (errors.length) {
        var msg = "Du mangler " + errors.join(", ");
        valid = false;
        alert(msg);
    }

    return valid;

});

如果你想让输出更加花哨添加一个“&”对于最后一个项目,这样的事情会起作用

if (errors.length) {
    var last = errors.length>1 ? ((errors.length>2) ? "," : "") + " & " + errors.pop() : "";
    var msg = "Du mangler " + errors.join(", ") + last;
    valid = false;
    alert(msg);
}