如何在表单验证中获得函数的返回值

时间:2012-06-01 08:57:40

标签: javascript html

我在一个网站上工作,我必须检查一些表格,以便任何字段不应该为空,如果有任何空字段,它应该写这个字段在字段名称的右侧是空的

我的表单代码是: -

        <form action="Owners Infoback.php"  onsubmit="return validateForm()"  method="post" name="enquiry" id="" class="form-body-02">
    <ul>
        <li>1. Name of owner <input name="Name_of_owner" type="text" class="textarea-bk-02" id=""  value="" style="border:none; width:330px; margin-left:40px; margin-top:15px; height:20px;"/>

        </li>
        <li>
         2. Name of company:<br />
         <p>(Enter name registered)</p></label>
        <input name="Name_of_company_registered" type="text" class="textarea-bk-02" id=""  value="" style="border:none; width:330px; margin-left:40px; margin-top:13px; height:20px;"/>
        </li>
        <li>
          3. Address:<p>(Write your own manufacturer address)</p>

        <input name="Owner_address" type="text" class="textarea-bk-02" id=""  value="" style="border:none; width:330px; height:20px; margin-left:40px; margin-top:13px;"/></li>

        </li>
        <li>
          4. Email id:
          <input name="Owner_Email_id" type="text" class="textarea-bk-02" id=""  value="<?php echo "{$row[3]}";?>" style="border:none; width:330px; margin-left:40px; margin-top:13px; height:20px;"/>
        </li>
        <li><input name="Save" type="submit"  class="send-btns-02 right" value="save" style="margin-top:5px;" >
        <div class="clear"></div>
        </li>
    </ul>

我的java脚本函数是: -

   function validateForm(string msz)
  {
 var x=document.forms["enquiry"]["Name_of_owner"].value;
if (x==null || x=="")
{
msz="First name must be filled out");
return msz;
}
x=document.forms["enquiry"]["Name_of_company_registered"].value;
if (x==null || x=="")
{ 
alert("Name of company registered filled out");
return false;
}
x=document.forms["enquiry"]["Owner_address"].value;
if (x==null || x=="")
{
alert("Owner addressmust be filled out");
return false;
}
 x=document.forms["enquiry"]["Owner_Email_id"].value;
 var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
 alert("Not a valid e-mail address");
 return false;
}
}

我想要而不是提醒功能它应该返回一个星号(*)和消息请填写这个表格恰好是字段名称,请帮助我..提前谢谢..

2 个答案:

答案 0 :(得分:1)

您可以在每个表单输入旁边放置隐藏的Div:

<div id="nameOfOwnerError" style="display:none">*</div>

为每个输入执行此操作,然后您可以根据它们是否有效来选择显示/隐藏它们:

$("#nameOfOwnerError").show();

编辑:Neeraj - 试试这个。

在Javascript(抱歉)中,有些内容......

 var nameOfOwnerError = document.getElementById("nameOfOwnerError");
nameOfOwnerError.style.display="visible";

脱离我的头脑,但你明白了。重点是隐藏星号,并使用您拥有的代码隐藏它们。

编辑2:抱歉Neeraj,未经测试 - 这对我有用:

document.getElementById('nameOfOwnerError').style.display = "";

让元素重新出现,你可以做到

...display="none"; 

在js代码中再次隐藏

编辑3:您可以在文本框中添加OnKeyUp事件,以便在文本框中输入文本时,您可以触发验证脚本:

<input name="Name_of_owner" type="text" onkeyup="validateForm('');" class="textarea-bk-02" id=""  value="" style="border:none; width:330px; margin-left:40px; margin-top:15px; height:20px;"/>

使用ifs确定字段是否为空(正如您所做),您应该能够在用户输入给定文本框后立即显示/隐藏星号。

现在要去,但这些方面的东西正是你要找的,祝你好运!

答案 1 :(得分:0)

你不希望它返回*。你希望它返回false(就像它正在做的那样)。你还想要的是在字段旁边绘制一个*以及关于你希望他们做什么的消息。

要发生这种情况,您要么在表单字段旁边添加一个不可见的div,并在用户尝试提交无效表单时显示它(基于缺少的数据)。或者,您可以使用document.createElement在运行时添加元素,并将其附加到表单字段的父级。在任何一种情况下,您都必须确保您的HTML适应额外的元素。