我在一个网站上工作,我必须检查一些表格,以便任何字段不应该为空,如果有任何空字段,它应该写这个字段在字段名称的右侧是空的
我的表单代码是: -
<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;
}
}
我想要而不是提醒功能它应该返回一个星号(*)和消息请填写这个表格恰好是字段名称,请帮助我..提前谢谢..
答案 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适应额外的元素。