標題看起來很簡單,但我需要幫助。用Javascript更改輸入值
我有一個字段輸入「郵件」,它的價值是零,直到用戶填寫起來的一種形式。好吧,提交按鈕的點擊,我調用函數的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;"/>
謝謝。
**'email.value =「重試!你的豬!';'**請注意,'setAttribute()'與設置一個元素的屬性(大多數情況下)不一樣。 – 2013-03-09 17:09:19
我會考慮使用佔位符來輸出錯誤消息,而不是直接在輸入中寫入錯誤消息。 – 2013-03-09 17:11:04
是的,這是一個糟糕的設計......您將覆蓋用戶剛輸入的電子郵件地址,而不是讓他們有機會查看它,查看問題並進行更正。 – 2013-03-09 17:11:56