0

我正在使用2个输入字段,第一个是真实的,另一个将被隐藏,就在它后面,使用position:fixed;,当用户提交表单时,会有一个表单验证,如果该原始字段为空,则不可见输入将显示为红色背景,并带有警告消息。这是有效的,通过使用.show()之后display:none; 我在jquery中编写了另一个代码,这使得这个警报输入消失了,当用户点击它时,意味着他正在尝试访问原始输入以便他可以在其中写入,并且这是工作,通过使用.hide(); 问题是,当我再次单击提交时,警报输入没有出现……再次,在 Firefox 中;但它在 IE 中运行良好。

这是 HTML 代码:

 <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(); 
});
4

2 回答 2

0

我猜问题出在var xemail=document.forms["signinForm"]["email"].value ...您是否检查过警报是否xemail在 IE 和 FF 中相同?我认为 FF 和 IE 使用形式不同。只是为了检查尝试给'email'一个id并用它来引用它,比如var xemail = $("#email").val()

于 2012-05-02T15:27:58.337 回答
0

在 Firefox 中工作

虽然我改变了一点代码......

$("#emailnotification").blur();是没用的,因为你先把注意力集中在其他地方。

(我也使用了鲁道夫的建议)

于 2012-05-02T15:47:34.037 回答