タイトルは簡単そうですが、助けが必要です。
「email」というフィールド入力のあるフォームがあり、ユーザーが入力するまでその値はnullです。さて、送信ボタンをクリックすると、関数validate()が呼び出されます。これは次のとおりです。
function validate(){
var email=document.getElementById("email");
if(!(/[\w-\.]{3,15}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/.test(email))) {
email.setAttribute('value','Insert a correct email');
email.style.border="2px solid red";
} else {
alert("Valid field"); // This is to test it works
email.style.border="2px solid #63ce40";
this.form.submit();
}
}
ここでやりたいのは、挿入された電子メールが要件を満たしていない(無効である)場合は、「正しい電子メールを挿入」で入力の値を変更することです。
フィールドが空で[送信]をクリックすると、完全に機能しますが、テキストを挿入して[送信]をクリックすると、フィールドに2pxの赤い境界線が表示されますが、テキストは変更されません。
[送信]をクリックすると、書き込まれた間違ったメールが削除され、「正しいメールを挿入」というテキストに置き換えられるようにするために、何をする必要があるのか知りたいです。
入力は次のとおりです。
<li>
<input type="text" id="email" name="email"
value="" onfocus="this.value=''" size="40"/>
</li>
そして、私が使用している送信ボタン:
<input id="bsubmit" type="button" value="Submit"
name="submit" onclick=";this.disabled=true;validate();
this.disabled=false;"/>
ありがとうございました。