解析 html 并使用 jquery 调用提交按钮

parse html and invoke submit button using jquery

我正在调用 Web 服务方法并尝试调用一些操作。但是,响应是 'html'。我需要解析它并调用提交按钮并附加输出。

html(数据)如下所示:

 <form target="_blank" action='../someService.asmx/Action' method="POST">
  <table >      
    <tr>
        <td></td>
        <td align="right"><input type="submit" value="Invoke" class="button"></td>
    </tr>
  </table>
</form>

这是 jquery 部分:

$(data).find('form').find('input[type="submit"]').submit(function(e){
    $('#result').append(output);
    event.preventDefault();                
});  

我看到三个问题,首先,阻止默认值应该是处理程序的第一行(我的猜测),其次,您正在调用 event.preventDefault 但您的处理程序有一个名为 e 的参数,第三,您应该在表单上调用 submit 事件,而不是在输入上调用:

data = $.parseHTML(data);
$(data).find('form').submit(function(event){
    event.preventDefault();  
    $('#result').append(output);
});

我不确定 preventDefault 调用是否应该始终在处理程序的开头,但我的观点是更容易知道该处理程序正在阻止事件的默认行为。

编辑

在您发表评论后,我认为您想要做的是:

data = $.parseHTML(data);
var $form = $(data).find('form');
$form.submit(function(event){
    event.preventDefault();
    $.ajax({
        type: 'POST',
        url: $(this).attr('action'),
        data: $(this).serialize(),
        success: function (data) {
            $('#result').append(data);
        },
        error: function (error) {
            console.log(error);
        }
    });
});
$form.trigger('submit');