我承认它的标题不是很明确。但我不知道如何命名我要做的事情。
我有index.htm。此页面使用以下代码从index.asp?Process = ViewRequests中提取数据。
$(function Requests() {
$.ajax({
type: 'GET',
url: 'content/requests/index.cs.asp?Process=ViewRequests',
success: function(data) {
$("#requests").html(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#requests").html('.');
}
});
});
然后,在这个新的拉取数据集中,我有几个表格。所有表单都有REQUESTFORM作为ID,提交按钮的名称是响应。我需要它需要执行什么;一旦用户点击这些表单中的任何一个,单击的表单应该将其数据发送到index.asp?Process = RespondRequests并打印其响应。
$("[name='respond']").click(function() {
$.ajax({
type: "POST",
data: $("#REQUESTFORM").serialize(),
url: "content/requests/index.cs.asp?Process=RespondRequests",
success: function(output) {
$('#REQUESTFORM').html(output)
},
error: function(output) {
$('#REQUESTFORM').html(output);
}
});
});
这甚至可能吗?
答案 0 :(得分:1)
我不太确定您要做什么,但您可以使用表单的提交事件并处理AJAX的请求。在处理函数中,您应该返回false以防止在浏览器中提交表单(因为您将通过AJAX提交它)。
我希望它有所帮助。
答案 1 :(得分:0)
您不能拥有多个具有相同ID的元素,或者至少如果您这样做,您将无法使用该ID。但由于提交按钮位于表单标记下方,因此您可以使用closest
函数选择最接近的表单。由于点击事件中的this
引用了被点击的元素,因此您可以轻松获取点击按钮的表单:
$(function Requests() {
$.ajax({
type: 'GET',
url: 'content/requests/index.cs.asp?Process=ViewRequests',
success: function(data) {
var that = this;
$("#requests").html(data);
$("[name='respond']").click(function() {
$.ajax({
type: "POST",
data: $(that).closest("form").serialize(),
url: "content/requests/index.cs.asp?Process=RespondRequests",
success: function(output) {
$(that).closest("form").html(output)
},
error: function(output) {
$(that).closest("form").html(output);
}
});
});
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#requests").html('.');
}
});
});