【问题标题】:Javascript stop servlet executionJavascript 停止 servlet 执行
【发布时间】:2014-05-20 08:57:51
【问题描述】:

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 html servlets


    【解决方案1】:

    使用事件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
    }
    

    如果您需要将表单发送到服务器但不重新加载页面,请将return true; 替换为ajax request


    参考

    【讨论】:

      【解决方案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>
      

      【讨论】:

        【解决方案3】:

        如果您需要通知您必须在单击时在 javascript 中的验证方法上返回 false 或 true(onClick 事件):

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

        如果输入正确则返回 true,否则如果我正确理解您想要执行的操作则返回 false(通知提交的数据不正确):

        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,就不会将提交发送到服务器功能。

        【讨论】:

          猜你喜欢
          • 2011-07-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多