Javascript 为什么我的AJAX post请求不起作用?

Javascript 为什么我的AJAX post请求不起作用?,javascript,java,jquery,ajax,Javascript,Java,Jquery,Ajax,我试图单击“Change”按钮并将表单数据发送到另一个JSP页面,以便在数据库中执行UPDATE语句。由于某些原因,我无法使用“update”id按钮执行包含AJAX调用的click()函数,因为没有弹出“ham”警报。很抱歉,由于我尝试了多种方法,所以在脚本标记中对此有多种注释方法。有人能帮我解决这个问题吗?当前jsp页面如下所示: <!DOCTYPE html> <head> <script src="/.jquery-1.9.1.js" type="te

我试图单击“Change”按钮并将表单数据发送到另一个JSP页面,以便在数据库中执行UPDATE语句。由于某些原因,我无法使用“update”id按钮执行包含AJAX调用的click()函数,因为没有弹出“ham”警报。很抱歉,由于我尝试了多种方法,所以在脚本标记中对此有多种注释方法。有人能帮我解决这个问题吗?当前jsp页面如下所示:

<!DOCTYPE html>

<head>
  <script src="/.jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script>
  <script src="http://code.jquery.com/jquery=latest.min.js" type="text/javascript">
    var getUrlParameter = function getUrlParameter(sParam) {
      var sPageURL = decodeURIComponent(window.location.search.substring(1)),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;
      for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) {
          return sParameterName[1] == undefined ? true : sParameterName[1];
        }
      }
    };

    $(document).ready(function() {
      var key = getUrlParameter("key");

    });
    $(form).submit(function() {
          if (-1 == this.action.indexOf('register')) {
            var jForm = $(this);
            $.post(this.action, $(this).serialize(), function(data) {
                if (data.status == 'SUCCESS') {
                  jForm[0].action = data.redirectUrl;
                  jForm.submit();
                }
                return false;
              }
            }
          });

        window.onload = function() {
          document.getElementById("submit").onclick = function() {
            location.href = "/View.jsp";
          }
        }

        window.onload = function() {
          document.getElementById("update").onclick = function() {
            location.href = "/View.jsp";
          }
        }
        $(document).ready(function() {
            $('#update').on('click', function(e) {
                  alert('ham');
                  $.ajax({
                    type: "post",
                    url: "change.jsp",
                    data: $("#form").serialize(),
                    success: function(msg) {
                      alert(msg.data);
                    },
                    error: function(xhr, ajaxOptions, thrownError) {
                      alert(xhr.status);
                      alert(thrownError);
                    }
                  });


                  $(document).ready(function() {
                    function click() {
                      alert('ham');
                      $.ajax({
                        type: "post",
                        url: "change.jsp",
                        data: $("#form").serialize(),
                        success: function(msg) {
                          alert(msg.data);
                        },
                        error: function(xhr, ajaxOptions, thrownError) {
                          alert(xhr.status);
                          alert(thrownError);
                        }
                      });

                      window.location.href = "change.jsp";
                      return false;
                    }
                  });



                  /*function validateForm(){
                  var x=document.forms["insert"]["ID"].value;
                  alert(x.len());
                  if(x==null||x==""){
                  alert("ID must be filled out");
                  return false;
                  }
                  }*/

  </script>
</head>

<body>
  ...
  <form id="myForm" action="register" method="post" name="insert">
    ID:
    <input type="text" name="ID" required value="<%=id%>" />
    <br/> RHINO:
    <input type="text" name="rhino" required value="<%=rhino%>" />
    <br/> OX:
    <input type="text" name="ox" required value="<%=ox%>" />
    <br/> HORSE:
    <input type="text" name="horse" required value="<%=horse%>" />
    <br/>

    <input type="submit" value="Submit" id="submit" />
    <!--<input type="submit" value="Update" id="change"/>-->
    <button id="update" onclick="return click()">Change</button>
  </form>
  ...
</body>

</html>

var getUrlParameter=函数getUrlParameter(sParam){
var sPageURL=decodeURIComponent(window.location.search.substring(1)),
sURLVariables=sPageURL.split(“&”),
sParameterName,
我
对于(i=0;i犀牛:

牛:
马:
改变 ...
您正在封闭范围内定义函数:

$(document).ready(function() {
    function click() {
        //...
    }
});
因此,它只存在于用作
就绪
处理程序的匿名
函数中。一旦该函数终止,如果没有任何引用,则该范围中定义的任何内容都将不再使用

然后尝试从全局范围调用函数:

<button id="update" onclick="return click()">Change</button>
并删除该内联处理程序:

<button id="update">Change</button>
更改
(注意:这段代码中很可能还有其他问题。如果没有任何缩进,实际上很难理解。但至少在单击该按钮时,这个问题似乎是最直接的。它需要能够找到函数才能执行它。)


更新:另一个用户已格式化了您问题中的代码,但确实存在其他问题。具体而言,您正在多次同时尝试将非常不同的行为附加到该按钮的单击上。其中一个事件甚至可能是重定向,这将简单地取消任何其他操作e因为页面正在重新加载。请简化代码。在该按钮上准确且仅执行所需的操作。单击。

您正在封闭范围内定义函数:

$(document).ready(function() {
    function click() {
        //...
    }
});
因此,它只存在于用作
就绪
处理程序的匿名
函数中。一旦该函数终止,如果没有任何引用,则该范围中定义的任何内容都将不再使用

然后尝试从全局范围调用函数:

<button id="update" onclick="return click()">Change</button>
并删除该内联处理程序:

<button id="update">Change</button>
更改
(注意:这段代码中很可能还有其他问题。如果没有任何缩进,实际上很难理解。但至少在单击该按钮时,这个问题似乎是最直接的。它需要能够找到函数才能执行它。)


更新:另一个用户已格式化了您问题中的代码,但确实存在其他问题。具体而言,您正在多次同时尝试将非常不同的行为附加到该按钮的单击上。其中一个事件甚至可能是重定向,这将简单地取消任何其他操作e因为页面正在重新加载。请简化代码。在该按钮上准确且仅执行所需的操作。

这有点乱。请执行多个操作