2015-12-02 75 views
-2

我有一個輸入字段:的JavaScript/jQuery的添加錯誤信息

<form action="admin" method="POST" commandName="adminForm" onsubmit="return validateEmail(this.email)"> 
    <table> 
     <tr> 
      <td> 
       <label for="email">Email</label> 
      </td> 
      <td> 
       <input id="email" name="email" type="text" path="email" oninvalid="this.setCustomValidity('Please fill this field - it is mandatory')" oninput="setCustomValidity('')"> 
      </td> 
     </tr> 
    </table> 
</form> 
function validateEmail(email) { 
    var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; 
    if (!re.test(email.value)) { 
     email.setAttribute("oninvalid", "this.setCustomValidity('Wrong email format')"); 
     email.setAttribute("oninput", "setCustomValidity('')"); 
     return false; 
    } 
    return re.test(email.value); 
} 

在這裏我要補充的錯誤的電子郵件時顯示錯誤消息。現在,當我在電子郵件字段下不添加任何內容時,它顯示錯誤Please fill this field - it is mandatory。如果電子郵件地址錯誤,我想更改此消息。

它目前不工作,任何想法爲什麼?

+0

什麼是你希望你的代碼,這樣做? –

+0

正如我在我的問題中寫的。現在,當我不在電子郵件字段中添加smth時,它顯示錯誤「請填寫此字段 - 它是強制性的」。現在我想要的 - 如果電子郵件是錯誤的更改此消息。 – ovod

+0

你不能更改html嗎?如果沒有,這將無法正常工作,在您的代碼可以更改消息之前調用該錯誤 –

回答

1

請參閱我的示例源代碼。

HTML

<form id="myForm" action="admin" method="POST"> 
    <table> 
     <tr> 
      <td> 
       <label for="email">Email</label> 
      </td> 
      <td> 
       <input id="email" name="email" type="text"> 
      </td> 
     </tr> 
    </table> 
    <div id="msg"></div> 
    <button type="submit">submit</button> 
</form> 

和JavaScript

var form = document.getElementById('myForm'); 
var msg = document.getElementById('msg'); 
form.addEventListener('submit', function(e) { 


    var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; 
    var email = document.getElementById('email').value; 

    if (!re.test(email)) { 

     console.log('invalid'); 
     msg.innerText = 'invalid email'; 
     e.preventDefault(); 
    } else { 
     msg.innerText = ''; 
    } 
}); 

live demo

+0

這不是我問的,但也是我的套件))) – ovod