Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery解析html并调用submit按钮_Javascript_Jquery_Ajax_Parsing_Html Parsing - Fatal编程技术网

Javascript 使用jquery解析html并调用submit按钮

Javascript 使用jquery解析html并调用submit按钮,javascript,jquery,ajax,parsing,html-parsing,Javascript,Jquery,Ajax,Parsing,Html Parsing,我正在调用一个web服务方法并尝试调用一些操作。然而,响应是“html”。我需要解析它并调用submit按钮并附加输出 以下是html(数据)的外观: <form target="_blank" action='../someService.asmx/Action' method="POST"> <table > <tr> <td></td> <td align="righ

我正在调用一个web服务方法并尝试调用一些操作。然而,响应是“html”。我需要解析它并调用submit按钮并附加输出

以下是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>

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

我之前尝试过这种方法,它没有输出任何东西。您要附加到#result的输出变量是什么?事实上,我试图附加提交事件后得到的输出。但是,由于我试图使用alter(“test”)进行测试,submit事件无法正常工作;首先,代码只是向submit事件添加一个处理程序,而不是触发事件。其次,您必须在该处理程序中添加一个ajax调用,您不会自动得到响应:)让我在我的答案中为您快速编辑。编辑。请查收。
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');