繁体   English   中英

if 语句不适用于创建和 object

[英]if-statement not working with creating and object

正在做一个项目以创建一个购买门票的网站,在该网站上,您需要填写每个框以创建 object 并将其存储在一个数组中,如果未填写 inn,它将清除所有输入框并显示一个错误信息。 但即使某些要求失败,它仍然会推送到阵列。

JS代码:'''

const billett = [];
function test() {


    let valgtFilm = document.getElementById("film").value;
    let antall = document.getElementById("antall").value;
    let fornavn = document.getElementById("forNavn").value;
    let etternavn = document.getElementById("etterNavn").value;
    let telefon = document.getElementById("telefornr").value;
    let epost = document.getElementById("epost").value;
    let tall = Number(antall);
    let telefonnr = Number(telefon);

    let ut = "<table><tr>" +
        "<th>Film</th><th>antall</th><th>Navn</th><th>Etternavn</th><th>Telefonnr</th><th>Epost</th>" +
        "</tr>";

    const nyBillett = {
        film: valgtFilm,
        antall: tall,
        navn: fornavn,
        etternavn: etternavn,
        tlf: telefonnr,
        epost: epost,
    }

    if (valgtFilm === "non") {
        document.getElementById("valgterr").innerHTML = "Velg en film";

    }
    if (tall <= 0) {
        document.getElementById("antallerr").innerHTML = "Skriv inn antall biletter";
    }
    if (fornavn === "") {
        document.getElementById("forNavnerr").innerHTML = "Skriv inn fornavnet ditt";
    }
    if (etternavn === "") {
        document.getElementById("etterNavnerr").innerHTML = "Skriv inn etternavnet ditt";
    }
    if (isNaN(telefonnr) || telefon === "") {
        document.getElementById("tlferr").innerHTML = "Skriv inn telefon nummeret ditt";
    }
    if (epost === "") {
        document.getElementById("eposterr").innerHTML = "Skriv inn en epost";
    }
    else {

        billett.push(nyBillett);
        for (let b of billett){

            ut += "<tr>";
            ut += "<td>" + b.film + "</td><td>" + b.antall + "</td><td>" + b.navn + "</td><td>" + b.etternavn + "</td><td>" + b.tlf + "</td><td>" + b.epost + "</td>";
            ut += "</tr>";

            document.getElementById("bestilt").innerHTML = ut;

            //fjerner verdier
            document.getElementById("film").value = 'Velg film her';
            document.getElementById("antall").value = "";
            document.getElementById("forNavn").value = "";
            document.getElementById("etterNavn").value = "";
            document.getElementById("telefornr").value = "";
            document.getElementById("epost").value = "";
        }
    }
}

'''

一种选择是设置成功标志。 当任何条件失败时,也将成功标志更改为失败。 然后最后只在成功标志为真时添加到表中。

let success = true;
if (valgtFilm === "non") {
    document.getElementById("valgterr").innerHTML = "Velg en film";
    success = false;
}
if (tall <= 0) {
    document.getElementById("antallerr").innerHTML = "Skriv inn antall biletter";
    success = false;
}
if (fornavn === "") {
    document.getElementById("forNavnerr").innerHTML = "Skriv inn fornavnet ditt";
    success = false;
}
// etc......

// If, at this point success is true, none of the conditions failed
if (success) {
    billett.push(nyBillett);
    for (let b of billett){
        // code removed for brevity
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM