繁体   English   中英

我需要帮助来了解简单的JavaScript脚本

[英]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文件

您的HTML文档在其内容中的某处定义了此定义

<form id="frmMain" ...>
    <input type="..." id="POL_NO">
    <input type="..." id="ENDT_NO">
</form>

脚本代码

所以。 您的脚本检查您的POL_NO输入字段是否具有值。

  1. 如果不是(这是一个空字符串),
  2. 它显示一个警报(信息窗口),并且
  3. 清空ENDT_NO字段的值,然后
  4. 将重点放在POL_NO字段上-因此用户可以立即开始在此字段中选择/输入值
  5. 返回false-可能取消表单提交

商业逻辑

在此基础上脚本的逻辑,业务流程显然不允许任何价值ENDT_NO场,直到有一个值POL_NO

观察

如果您需要对此代码进行某些更改(如果其中存在错误), 我强烈建议您在进行任何更改之前先了解Javascript / DOM / HTML。

document.frmMain是页面中的表单,而POL_NOENDT_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;               
}

我假设这段代码是frmMainonSubmit事件(和事件处理程序)调用的函数的一部分—当函数返回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.

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