早上好 !
我有這個簡單的電子郵件地址輸入欄位:
<form>
<input type="email" placeholder="E-Mail" required>
<input type="submit" value="Send" />
</form>
如果您寫“[email protected]”,則可以提交表單,因為電子郵件是有效的。如果你寫“[email protected]”,則無法提交表單,因為電子郵件無效。
但 !
如果你寫“max@i9”,你也可以提交表格。但是郵件無效。為什么??我該如何解決?
uj5u.com熱心網友回復:
因為max@i9是因為這說明一個有效的電子郵件文章。您可以通過添加自己的電子郵件模式來“修復”它,請參閱本教程:
<input type="email" pattern="/^[a-zA-Z0-9.!#$%&'* /=?^_`{|}~-] @[a-zA-Z0-9-] (?:\.[a-zA-Z0-9-] )*$/" required />
這是關于“為什么沒有點的電子郵件有效”的更詳細問題。 為什么 HTML5 表單驗證允許不帶點的電子郵件?
uj5u.com熱心網友回復:
<form>
<input pattern="[a-zA-Z0-9.-_]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}$"
type="text" required />
<input type="submit" value="Send" />
</form>
uj5u.com熱心網友回復:
這是因為 HTML5 type="email" 驗證器僅在您的輸入字串中查找 @ 符號。如果找到,您的表單將提交,否則將不會提交。為避免這種情況,您必須像這樣使用 javaSctipt 表單驗證:-
function validateemail()
{
var x=document.myform.email.value;
var atposition=x.indexOf("@");
var dotposition=x.lastIndexOf(".");
if (atposition<1 || dotposition<atposition 2 || dotposition 2>=x.length){
alert("Please enter a valid e-mail address \n atpostion:" atposition "\n dotposition:" dotposition);
return false;
}
}
uj5u.com熱心網友回復:
HTML 無法幫助您進行資料驗證,您可以學習 js 來做到這一點
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358490.html
