如果语句没有初始化JavaScript

时间:2014-06-04 10:29:13

标签: javascript

以下是我使用JavaScript验证的简单HTML表单的代码。如果字段为空,我只想返回错误消息。

目前,该网页直接进入success.html页面而未初始化javascript。任何帮助将不胜感激!

好的,所以我做了一些改动,但仍然无法正常工作。这是编辑过的代码:

function validateForm() {
var result = true;
var msg="";
if (document.ExamEntry.name.value==="") {
msg+="You must enter your name \n";
document.ExamEntry.Name.focus();
document.getElementById('name').style.color="red";
result = false;
}


if (document.ExamEntry.subject.value==="") {
msg+="You must enter the subject \n";
document.ExamEntry.Subject.focus();
document.getElementById('subject').style.color="red";
result = false;
}
if(msg===""){
return result;
}else{
alert(msg) 
return result; 

感谢所有的贡献

3 个答案:

答案 0 :(得分:0)

围绕以下if语句后面的逻辑的圆括号

if (msg !== "") {
    return result;
} {
    alert(msg)
    return result;
}

简单地说,你应该写:

if (msg !== "") {
    return result;
}

alert(msg);
return result;

答案 1 :(得分:0)

我读错了还是你的if陈述逻辑倒退了?

        if (document.ExamEntry.name.value !== "") {
            msg += "You must enter your name \n";
            document.ExamEntry.name.focus();
            document.getElementById('name').style.color = "red";
            result = false;
        }


        if (document.ExamEntry.subject.value !== "") {
            msg += "You must enter the subject \n";
            document.ExamEntry.subject.focus();
            document.getElementById('subject').style.color = "red";
            result = false;
        }
默认情况下,

result为true。如果你没有为这两个字段输入值,那么!==""将为false(因为它确实等于空字符串),因此result将保留true,这将启用表单提交。

尝试:

        if (document.ExamEntry.name.value === "") {
            msg += "You must enter your name \n";
            document.ExamEntry.name.focus();
            document.getElementById('name').style.color = "red";
            result = false;
        }


        if (document.ExamEntry.subject.value === "") {
            msg += "You must enter the subject \n";
            document.ExamEntry.subject.focus();
            document.getElementById('subject').style.color = "red";
            result = false;
        }

另外,正如其他人指出的那样,你错过了一个else语句:

        if (msg !== "") {
            return result;
        } else {
            alert(msg)
            return result;
        }

最后,你提到这是Java。这是JavaScript。不,JavaScript不仅仅是Java的较小版本。这是一种非常不同的语言。

答案 2 :(得分:0)

看起来你要与非空字符串进行比较,而比较应该是空字符串,即if(document.ExamEntry.name.value!==“”){应该更改为if(文档。 ExamEntry.name.value ==“”){

这意味着要在文本框中检查非空字符串并重定向到相应的页面(成功页面)。

同时将警报(msg)移动到if(msg!==“”)块。我想你想在空文本框的情况下提醒用户。