我正在使用2个输入字段,第一个是真实的,另一个是隐藏的,就在它后面,使用position:fixed;
,当用户提交表单时,会有一个表单验证,如果原始字段为空,隐藏输入将显示,带有红色背景,带有警报消息。这是有效的,在.show()
之后使用display:none;
然后我在jquery中编写了另一个代码,这使得此警报输入消失,当用户点击它时,意味着他正在尝试访问原始输入,所以他可以写入,这是有效的,使用.hide()
;问题是,当我再次点击提交时,警报输入没有再次显示...在Firefox中;但它在IE中工作得非常好。
这是HTML CODE:
<div style=" padding-top:2px; overflow:hidden; float:left ">
<div style="float:left; ">
<label for="email">
E-mail
</label>
<br>
<div style="position:relative;">
<input class="inputtext" type="text" id="email" name="email" maxlength="32" style=" width:140px; height:15px;" tabindex=1/>
<input class="inputtext" type="text" id="emailnotification" name="emailnotification" maxlength="32" style=" width:140px; background-color: rgb(220, 20, 60); color: white; z-index:20; display:none; height:15px; font-weight: bold; position:absolute; left:0px;"/>
</div>
</div>
现在这是表单验证功能的一部分:
function validateForm()
{
var xe;
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var xemail=document.forms["signinForm"]["email"].value;
if(xemail==null || xemail=="")
{$("#emailnotification").val("Email is Required");
$("#emailnotification").show();
xe=1;
}
else if (reg.test(xemail)==false)
{
$("#emailnotification").val("Email is not Valid");
$("#emailnotification").show();
xe=1;
}
现在这是隐藏它的jquery代码:
$("#emailnotification").click (
function() {
$("#emailnotification").hide();
$("#email").focus();
$("#emailnotification").blur();
});
答案 0 :(得分:0)
我猜测问题出在var xemail=document.forms["signinForm"]["email"].value
...如果IE和FF中的xemail
相同,您是否已通过警报进行检查?我认为FF和IE使用不同的形式。只是为了检查尝试给予电子邮件&#39;一个id并使用它来代替它,比如var xemail = $("#email").val()
答案 1 :(得分:0)
虽然我稍微更改了代码......
$("#emailnotification").blur();
没用,因为你首先关注其他地方。
(我也使用了Rodolfo建议)