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