我需要帮助理解一个简单的JavaScript脚本

时间:2009-09-25 06:35:32

标签: javascript

if(document.frmMain.POL_NO.value == "")
{
    alert("Select Policy Number");
    document.frmMain.ENDT_NO.value="";
    document.frmMain.POL_NO.focus();
    return false;           
}

有人可以向我解释上述代码吗?我是Javascript的新手。

6 个答案:

答案 0 :(得分:7)

这似乎是一些验证代码,以确保用户输入了一个名为“政策号”的项目的值。在提交表单以检查用户输入的值是否有效时,会调用此类代码。

详细说明:

if(document.frmMain.POL_NO.value == "")

如果在名为frmMain的表单中调用POL_NO的项目还没有值,则只运行此代码。

alert("Select Policy Number");

显示一条消息,告诉用户他们需要输入值。

document.frmMain.ENDT_NO.value="";

将frmMain的ENDT_NO项设置为空值。

document.frmMain.POL_NO.focus();

将焦点设置为POL_NO项目(与用户标签相同或点击它)。

return false;

将false返回给调用此代码所在函数的代码。如果此代码用于表单上的提交按钮的事件处理程序,则返回false将阻止表单提交到服务器,直到POL_NO item有一个值。

答案 1 :(得分:3)

如果POL_NO形式的项frmMain的内容为空,则抛出警报并将ENDT_NO项值的值更改为空(空),之后专注于元素POL_NO。之后返回false(我假设此代码在onSubmit事件处执行,因此如果POL_NO没有值,则不会提交表单。

如果ENDT_NO为空,可能逻辑是POL_NO不能有值。

享受!

答案 2 :(得分:3)

HTML文档

您的HTML文档已在其内容的某处定义

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

SCRIPT代码

因此。您的脚本会检查您的POL_NO输入字段是否有值。

  1. 如果没有(它是一个空字符串),
  2. 显示警告(信息窗口)和
  3. 清空ENDT_NO字段的值和
  4. 将重点放在POL_NO字段上 - 这样用户就可以立即开始在此字段中选择/输入值
  5. 返回false - 可能是取消表单提交
  6. 业务逻辑

    根据此脚本的逻辑,业务流程显然不允许ENDT_NO字段中的任何值,直到POL_NO中有值。

    观察

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

答案 3 :(得分:3)

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;               
}

我假设此代码是由frmMain的{​​{1}}事件(和事件处理程序)调用的函数的一部分 - 当函数返回onSubmit时,提交是取消。如果不在此处,则会显示消息框,清除false,选择ENDT_NO然后提交。

请注意,不推荐以POL_NO方式引用表单成员。正确的方法是使用document.formName.fieldName.property或类似的功能:

getElementById

答案 4 :(得分:0)

实际上你的代码做了一个非常简单的验证,只需阅读代码并在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;

 }

答案 5 :(得分:0)

如果frmMain形式的名为POL_NO的输入值为空,则显示消息“选择策略编号”,清空名为ENDT_NO的输入,将焦点指向名为POL_NO的输入,并退出该函数返回值“false”。