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