使用Ajax提交表单

时间:2014-02-25 20:34:59

标签: javascript jquery html ajax forms

我正在为网站制作用户脚本,我的目标是在我尚未打开的页面上提交表单。如果我使用我想提交的表单从页面中删除所有不需要的位,这就是剩下的(审查链接):

<form action="http://foo.com/supply/" method="POST" name="supplyContractForm">
<input type="hidden" name="supplyContractData[selected][]" value="2244068">
<input type="type" name="supplyContractData[party_quantity][2244068]" value="123">  
<input type="text" value="0" name="supplyContractData[quality_constraint_min][2244068]">
<input type="submit" name="applyChanges">
</form>

所有关于第三行:'value =“123”'。 我想将该值更改为“222”。 我该怎么做:我将输入值从“123”更改为“222”,我按下提交按钮,表单提交:页面重新加载,显示的值为“222”。 正如我想要的那样。

现在,这都是手动的,我希望它是脚本化的。

这有效:

$("input:submit").click();

然而,这不起作用:

$("form").submit();

这也不起作用:

$.post($("form").attr("action"), $("form").serialize())

如何使用Ajax发布此表单,我可以通过http://foo.com/main/更改值?

注意:我只能做客户端的事情,我只是制作用户脚本,而且我看不到服务器端代码。

1 个答案:

答案 0 :(得分:-1)

这可以解决问题

Html,请注意添加的更清洁的js类:

<form action="http://foo.com/supply/" method="POST" name="supplyContractForm">
    <input type="hidden" name="supplyContractData[selected][]" value="2244068">
    <input class="changer" type="type" name="supplyContractData[party_quantity][2244068]" value="123">  
    <input type="text" value="0" name="supplyContractData[quality_constraint_min][2244068]">
    <input type="submit" name="applyChanges">
</form>

JS:

$('form input.changer').val('222');
$('input:submit').click();

$('form')。submit()可能不起作用的原因是因为$('form')匹配多个元素,即你的html中有多个表单吗?如果是这样,通过添加ids或类使选择器更加独特,以便您选择成为:

$('#formid').submit();

<强>的Ajax

这不使用ajax,因为你需要:

var form = $('form');
$.ajax({
    url: form.attr('action'),
    type: form.attr('method'),
    data: form.serialize(),
    success: function(){
        alert('Form posted via ajax!');
    }
});