我必须解释一个特定的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;
}
答案 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
的任何内容。但我真的不知道。也许您在其他地方有一些代码可以创建该变量。无论哪种方式,这是一个可怕的想法,应该让某人大喊大叫。