2014-05-20 70 views
1

的Html

<form action="adduser", method="post"> 
... 
<td colspan="2"><input type="submit" value="Add" onclick="validate()"/></td> 
</form> 

的JavaScript

function validate() { 
var payRate = document.getElementById("payRate").value; 

if (payRate === parseInt(payRate)) { 
    alert("it is an integer"); 
} else { 
    alert("it is not an integer"); 
} 

後,我點擊添加按鈕,它調用驗證功能,那麼它調用servlet(adduser的)。我的問題是如何在驗證函數中編寫代碼以防止servlet調用。我只想提醒一個對話框並保持在頁面上。請幫我的JavaScript停止執行的servlet

回答

4

使用事件onSubmit,而不是onClick,因爲用戶可以使用輸入,而不是點擊提交按鈕。

HTML

<form action="adduser", method="post" onsubmit="return validate();"> 
    ... 
    <td colspan="2"><input type="submit" value="Add"/></td> 
</form> 

的Javascript

function validate() { 
    var payRate = document.getElementById("payRate").value; 

    if (payRate === parseInt(payRate)) { 
     alert("It is an integer"); 
     return true; // return true if you want to send the form to your server and reload the page 
    } else { 
     alert("It is not an integer"); 
    } 
    return false; // return false to not reload the page 
} 

如果您需要將表格發送到您的服務器而不是重新加載頁面,通過ajax request更換return true;


參考

2
function validate() { 
var payRate = document.getElementById("payRate").value; 

if (payRate === parseInt(payRate)) { 
    alert("it is an integer"); 
} else { 
    alert("it is not an integer"); 
} 
return false; // this will disable the function 
} 

在HTML中,做如下修改:

<td colspan="2"><input type="submit" value="Add" onclick="return validate()"/></td> 
2

如果你需要告知你必須在JavaScript時返回假意或真心在你的validate方法您單擊(onClick事件):

<form action="adduser", method="post"> 
    ... 
    <td colspan="2"><input type="submit" value="Add" onclick="return validate();"/></td> 
    </form> 

如果輸入的是正確的還是錯誤的,否則,如果我理解正確的話,你要執行(提交不正確的數據的通知)什麼返回true:以這種方式

function validate() { 
var payRate = document.getElementById("payRate").value; 

if (payRate === parseInt(payRate)) { 
    alert("it is an integer"); 
    return true; 
} else { 
    alert("it is not an integer"); 
return false; 
} 

如果數據正確,用alert()通知用戶,並且將請求發送到服務器,否則將通知用戶不正確的數據,並且只要您在驗證功能中返回false,就不會將提交發送到服務器。