JavaScript表单验证代码的含义?

时间:2014-09-23 18:26:42

标签: javascript html validation

我必须解释一个特定的Javascript代码如何验证Web表单,但我仍然坚持使用某些功能,特别是代码的这一部分。我理解第一行定义只有在Field1形式的字段ExampleForm为空时才会运行该部分的其余部分,但我不知道其余代码的用途是什么。我所知道的是msg是一个先前在文档中创建的变量,其默认值为空,result是另一个默认值为true的变量。任何人都可以通过解释每条线的作用来帮助我吗?

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

2 个答案:

答案 0 :(得分:2)

用简单的英语:

如果文档表单字段值等于空字符串,请将错误消息设置为msg,然后将焦点放在元素上,并给出红色,以便用户知道它是错误的,并将结果设置为false,无论您将在以后的代码/函数中使用它。

答案 1 :(得分:0)

所以这部分取决于页面上的其他代码。例如,document.ExampleForm不是DOM的一部分,而且似乎是某人在您的网页上闯入的内容。

总的来说,我会说这是一个非常糟糕的代码,它使得大量的假设不一定会被那些不太了解浏览器中的javascript的人所写,但是让我们来看看。跟着它去吧

//if the value in this variable is falsy (false, empty, or 0)
if (document.ExampleForm.Field1.value=="") {
    //Append this to the msg string. Note \n is usually used 
    //to indicate "new line" but wont' do anything on the web since that's not how line breaks
    //work on the web
    msg+=”You must enter your name \n”;
    //Invoke the `focus` field on this variable. From the context I assume this is
    //a DOM node so you are basically focusing it in the browser
    document.ExampleForm.name.focus();
    //Set the font color of '#Field1' to red
    document.getElementById('Field1').style.color=”red”;
    //Presumably result is something that tells you true/false did the validation succeed.
    //set it to false to indicate failure.
    result = false;
}

我猜测document.ExampleForm是什么,它取决于旧浏览器的一些未记录的行为,以便向文档元素添加id=ExampleForm的任何内容。但我真的不知道。也许您在其他地方有一些代码可以创建该变量。无论哪种方式,这是一个可怕的想法,应该让某人大喊大叫。