2014-03-14 39 views
1

我寫了一個HTML代碼,其中我正在驗證文本字段的字母值Regex=/^[a-zA-Z]*$/。其實對於無效輸入,我希望該表單不應該被提交。儘管輸入無效,表單仍被提交

驗證碼

function Validate() { 
    var fname=$("#fname").val(); 
    if(!(fname.match(Regex))) 
     alert("Invalid First Name");    
    return false; 
} 

HTML代碼

<input type="text" name="fname" id="fname" onblur="return Validate();"/> 

我應該怎麼做,這樣對於無效值的形式不應該得到提交。

+0

1)請勿使用警報。更新HTML中的驗證範圍。 2)使用'onsubmit'方法進行驗證。 3)在Stack Overflow上搜索'[Javascript] Validation''。 –

回答

0

看起來你必須在onsubmit處理函數中返回false。 onblur只是處理重點。 嘗試更改onblur - > onsubmit

0

使用表單元素的onsubmit事件可以在驗證成功時返回true,或者如果有任何字段未驗證,則返回false。

這是一個工作示例。它還表明,你不應該依賴客戶端驗證,因爲無論如何,只要輸入url,沒有人阻止你獲取(甚至發佈)請求。您已被警告客戶端驗證的限制,因此以下是代碼:

<html> 
<head> 
<script> 
function Validate() { 
    var text = document.getElementById("fname").value; 

    // simple validation example 
    if (text != "secret") { 
     alert("you must enter the right secret string!"); 
     return false; 
    }   

    // everything validated 
    return true; 
} 
</script> 
</head> 
<body> 
    <form name="myForm" method="get" onsubmit="return Validate();"> 
    <input type="text" name="fname" id="fname"/> 
    </form> 
</body> 
</html>