<form action="adduser", method="post">
...
<td colspan="2"><input type="submit" value="Add" onclick="validate()"/></td>
</form>
function validate() {
var payRate = document.getElementById("payRate").value;
if (payRate === parseInt(payRate)) {
alert("it is an integer");
} else {
alert("it is not an integer");
}
按下添加按钮后,它会调用validate函数,然后调用servlet(adduser)。我的问题是如何在validate函数中编写代码以防止servlet调用。我只想提醒一个对话框并留在页面上。请帮帮我
答案 0 :(得分:4)
使用事件onSubmit
代替onClick
,因为用户可以使用Enter而不是点击提交按钮。
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
}
如果您需要将表单发送到服务器但不重新加载页面,请将return true;
替换为ajax request。
参考的
答案 1 :(得分: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 :(得分:2)
如果您需要通知您在单击(onClick事件)时在javascript中的验证方法上返回false或true:
<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,就不会向服务器发送提交功能