Zmień wartość wejściową za pomocą Javascript
Tytuł wydaje się łatwy, ale potrzebuję pomocy.
Mam formularz z polem „email”, którego wartość jest null, dopóki użytkownik go nie wypełni. OK, po kliknięciu przycisku Prześlij wywołuję funkcję validate (), która jest:
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();
}
}
Chcę, aby w przypadku, gdy wstawiony e-mail nie spełnia wymagań (nie jest prawidłowy), zmień wartość danych wejściowych za pomocą opcji „Wstaw prawidłowy adres e-mail”.
Jeśli pole jest puste i klikam przycisk Prześlij, działa idealnie, ale jeśli wstawię tekst i kliknę przycisk Prześlij, jedyną zmianą będzie pole z czerwoną ramką 2px, ale bez zmiany tekstu.
Chciałbym wiedzieć, co mam zrobić, aby po kliknięciu wysłać źle napisany e-mail, który został usunięty i zastąpiony tekstem „Wstaw prawidłowy adres e-mail”.
Dane wejściowe to:
<li>
<input type="text" id="email" name="email"
value="" onfocus="this.value=''" size="40"/>
</li>
A przycisk przesyłania używam:
<input id="bsubmit" type="button" value="Submit"
name="submit" onclick=";this.disabled=true;validate();
this.disabled=false;"/>
Dziękuję Ci.