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

parse html and invoke submit button using jquery

本文关键字:调用 提交 按钮 jquery HTML 解析      更新时间:2023-09-26

我正在调用一个web服务方法并试图调用一些操作。然而,回复是"html"。我需要解析它并调用提交按钮并附加输出。

html (data)是这样的:

 <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');