0

私は2つの入力フィールドを使用しています。最初のフィールドは真のフィールドで、もう1つはそのすぐ後ろに非表示に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

ここFirefoxで動作します

コードを少し変更しましたが...

$("#emailnotification").blur();最初に他の場所に焦点を合わせるので、役に立たない。

(私もRodolfoの提案を使用しました)

于 2012-05-02T15:47:34.037 に答える
0

問題はあると思います... IEとFFで同じvar xemail=document.forms["signinForm"]["email"].value かどうかをアラートで確認しましたか?xemailFFとIEの使い方は違うと思います。確認するには、「email」にIDを付けて、代わりにそれを使用して参照してください。var xemail = $("#email").val()

于 2012-05-02T15:27:58.337 に答える