[英]I need help understanding a simple JavaScript script
if(document.frmMain.POL_NO.value == "")
{
alert("Select Policy Number");
document.frmMain.ENDT_NO.value="";
document.frmMain.POL_NO.focus();
return false;
}
谁能向我解释以上代码? 我是Java语言的新手。
似乎有些验证代码可以确保用户输入了称为“策略编号”的项目的值。 提交表单以检查用户输入的值是否有效时,将调用这种代码。
详细:
if(document.frmMain.POL_NO.value == "")
仅当以POL_NO形式调用的项目frmMain尚无值时,才运行此代码。
alert("Select Policy Number");
显示一条消息,告诉用户他们需要输入一个值。
document.frmMain.ENDT_NO.value="";
将frmMain的ENDT_NO项设置为空白值。
document.frmMain.POL_NO.focus();
将焦点设置到POL_NO项目(与用户在其上进行制表或单击的方式相同)。
return false;
将false返回给调用该代码所在函数的代码。如果在事件处理程序中将此代码用于表单上的Submit按钮,则返回false将停止将该表单提交到服务器,直到POL_NO项具有值。
如果来自frmMain
形式的POL_NO
项的内容为空,则引发警报并将ENDT_NO
项值的值更改为ENDT_NO
(空),然后将重点放在元素POL_NO
。 之后返回false
(我假设此代码在onSubmit
事件上执行,因此如果POL_NO
没有值,则不会提交该表单)
逻辑可能是如果POL_NO
为空,则ENDT_NO
不能有值。
请享用!
您的HTML文档在其内容中的某处定义了此定义
<form id="frmMain" ...>
<input type="..." id="POL_NO">
<input type="..." id="ENDT_NO">
</form>
所以。 您的脚本检查您的POL_NO
输入字段是否具有值。
ENDT_NO
字段的值,然后 POL_NO
字段上-因此用户可以立即开始在此字段中选择/输入值 在此基础上脚本的逻辑,业务流程显然不允许任何价值ENDT_NO
场,直到有一个值POL_NO
。
如果您需要对此代码进行某些更改(如果其中存在错误), 我强烈建议您在进行任何更改之前先了解Javascript / DOM / HTML。
document.frmMain
是页面中的表单,而POL_NO
和ENDT_NO
是表单中的字段,大概是列表框。
此代码是一个简单的验证脚本,可确保您正确填写表单。
//if POL_NO hasn't been set (no policy number selected):
if(document.frmMain.POL_NO.value == "")
{
//show a message box
alert("Select Policy Number");
//clear the value (if any) of ENDT_NO
document.frmMain.ENDT_NO.value="";
//set the form focus to POL_NO (select it, as if you had clicked on it)
document.frmMain.POL_NO.focus();
//stop the form from being submitted
return false;
}
我假设这段代码是frmMain
的onSubmit
事件(和事件处理程序)调用的函数的一部分—当函数返回false
,提交将被取消。 如果不是这里,它将显示消息框,清除ENDT_NO
,选择POL_NO
,然后POL_NO
提交。
请注意,不建议使用document.formName.fieldName.property
方式引用表单的成员。 正确的方法是使用getElementById
或类似的函数:
document.frmMain.ENDT_NO.value = ""; //bad
document.getElementById("ENDT_NO").value = ""; //correct
实际上,您的代码进行了非常简单的验证,只需阅读代码并在HTML输出中找到字段POL_NO和ENDT_NO。 这是我的评论:
// if your POL_NO field is empty,
if(document.frmMain.POL_NO.value == "")
{
// warn user that he need to select Policy number
alert("Select Policy Number");
// set ENDT_NO field's value to empty
document.frmMain.ENDT_NO.value="";
// set POL_NO active - focussed
document.frmMain.POL_NO.focus();
return false;
}
如果形式为frmMain的名为POL_NO的输入值为空,则显示一条消息“选择策略编号”,清空名为ENDT_NO的输入,将焦点集中在名为POL_NO的输入上,并以返回值退出函数“假”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.