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

时间:2015-07-13 20:20:38

标签: javascript jquery ajax parsing html-parsing

我正在调用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();                
});  

1 个答案:

答案 0 :(得分:1)

我看到三个问题,首先,防止默认值应该是处理程序的第一行(我的猜测),第二,你正在调用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');