Javascript 为什么我的AJAX post请求不起作用?
我试图单击“Change”按钮并将表单数据发送到另一个JSP页面,以便在数据库中执行UPDATE语句。由于某些原因,我无法使用“update”id按钮执行包含AJAX调用的click()函数,因为没有弹出“ham”警报。很抱歉,由于我尝试了多种方法,所以在脚本标记中对此有多种注释方法。有人能帮我解决这个问题吗?当前jsp页面如下所示: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
<!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因为页面正在重新加载。请简化代码。在该按钮上准确且仅执行所需的操作。这有点乱。请执行多个操作