2014-05-01 124 views
-1

它曾經去,但我無法找到阻止它進入的錯誤我添加了額外的複選框,但是當我意識到它被破壞時,我嘗試了Ctrl + Z但是沒有把我帶回足夠多:(這個部分不再起作用「的電子郵件類型的驗證,所以應該拿出該消息是警報(‘請選擇什麼類型的電子郵件’);」單選按鈕驗證Javascript accdiently

+0

你是什麼意思讓它走?這個對我有用。 [JsFiddle](http://jsfiddle.net/Gke8G/) – Albzi

+0

抱歉,我忘了添加實際上錯誤的郵件類型驗證,所以應該出現的消息是alert(「請選擇郵件類型「); – CJB

+0

@BeatAlex的小提琴也適合我,它也適用於你? – zeppaman

回答

0

JsFiddle

Codepen

添加此行到你的變量:

var type = document.forms["contactform"]["contactf"]; 

然後做這種檢查,而不是:

else if ((type[0].checked == false) && (type[1].checked == false) && 
(type[2].checked == false) && (type[3].checked == false)) 

此外,對於您的電子郵件驗證,HTML5type='email'你可以使用的輸入。

請記住,僅僅因爲它(有點)驗證客戶端,並不意味着有足夠的知識的人可以繞過它。確保之後,你也驗證了所有這個服務器端。

+0

謝謝,所以我必須刪除我以前的原始var類型,經驗教訓不要做編碼時,你有一個討厭的冷大聲笑 – CJB

0

JS不應該用於驗證,因爲它比它更值得一試。

觀察:

你的「電子郵件驗證」只是簡單地檢查「它有東西的@之前,和一個點至少一個字符後的@」。那麼...我很確定@@@...不是一個有效的電子郵件地址!

改爲:<input type="email" /> - 嘗試在上輸入無效的電子郵件地址


同理:

<input type="radio" name="fish" value="1" required /> 
<input type="radio" name="fish" value="2" /> 
<input type="radio" name="fish" value="3" /> 

請注意,您只需要把「需要」,在其中的一個 - 你可以做所有這些,如果你想要的,但它是沒有必要的。

以這種方式使用HTML5表格,您可以刪除所有驗證JavaScript。當然,您必須在服務器上進行驗證。否則,人們可以提交任何他們想要的東西,如果他們繞了一下 - JavaScript無法挽救你。