解析 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');
我正在调用 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');