提交内部提交

时间:2009-08-18 22:38:39

标签: jquery

我承认它的标题不是很明确。但我不知道如何命名我要做的事情。

我有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);
                }
            }); 
    }); 

这甚至可能吗?

2 个答案:

答案 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('.');
       }
     });
   });