Javascript - 表单提交无效

时间:2012-03-12 10:05:19

标签: javascript forms

这是无效的代码:

<form id="paypal" name="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_parent" />Official website!
<input type="hidden" name="item_name" value="Donation">
<input type="hidden" name="cmd" value="_donations">
<input type="hidden" name="bn" value="PP-DonationsBF">
<input type="hidden" name="currency_code" id="currency_code" value="GBP" >
<input type="hidden" name="business" id="business" value="paypalemail@null.com" >

<a href="javascript: donate(paypal);" class="button1"><span></span><strong>£<input name="amount" type="text" id="ppAmount" style="text-align:center;" value="5" size="2" /> Donate!</strong></a>
<input type="submit">
</form></span>
<div id="formtesting"></div>
<script type="text/javascript">

function donate(paypal) {

document.getElementById("formtesting").innerHTML="maybe...";
document.forms["paypal"].action = "https://www.paypal.com/cgi-bin/webscr";
document.forms["paypal"].submit();
document.getElementById("formtesting").innerHTML="did it work?";

}

我希望它在点击“button1”时提交,使用“javascript:donate(paypal)”提交按钮正常工作.. (它在formtesting div中打印“maybe”但不是“它有用吗?”:/)

7 个答案:

答案 0 :(得分:27)

我遇到myForm.submit()未提交表单的问题。事实证明我的问题是我的提交按钮的id是'提交'。一旦我将我的身份改为另一个名字,中提琴,它就有效了。希望这有助于其他人遇到这个问题的相同变体。

编辑:另请注意下面的MalcomOcean评论,其中name标记也会导致此问题

答案 1 :(得分:3)

使用此代码可以使用

function donate() {
document.getElementById("formtesting").innerHTML="maybe...";
document.paypal.action = "https://www.paypal.com/cgi-bin/webscr";
document.paypal.submit();
document.getElementById("formtesting").innerHTML="did it work?";
}

这里paypal是表格的名称。

答案 2 :(得分:1)

面对同样的问题,从javascript提交并未提交表单。试过从javascript中提交表单的所有方法,例如document.formname.submit()或document.getElementById(“formId”)。submit()。但这些都没有用。

问题出在我的html页面上,还有另一个按钮(不是我点击的按钮),该按钮的名称是“提交”。当我将该名称更改为其他内容时,我的表单已提交。

答案 3 :(得分:0)

对我而言,这是因为尝试访问不存在的元素。即使在开发人员控制台中查看,也不会出现错误日志通知,但代码将中止。我的代码:

function MoveImageUp(id)
{
    document.fms.aid.value= id;
    document.fms.mode.value='up'; // die! the form has no element called aid

    document.fms.submit();
}

仔细检查所有引用的元素。

答案 4 :(得分:0)

删除所有“&lt;”形式“&gt;”打开和关闭标签,如果您使用的是document.createElement(“form”);

答案 5 :(得分:-1)

这有效:

<script type="text/javascript">
function donate(paypal) {
    document.getElementById("formtesting").innerHTML="maybe...";
    document.forms["paypal"].action = "https://www.paypal.com/cgi-bin/webscr";
    document.forms["paypal"].submit();
    document.getElementById("formtesting").innerHTML="did it work?";
}
</script>

<form id="paypal" name="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_parent" />
    Official website!
    <input type="hidden" name="item_name" value="Donation">
    <input type="hidden" name="cmd" value="_donations">
    <input type="hidden" name="bn" value="PP-DonationsBF">
    <input type="hidden" name="currency_code" id="currency_code" value="GBP" >
    <input type="hidden" name="business" id="business" value="paypalemail@null.com" >

    <a href="javascript: donate(paypal); return false" class="button1">
        <strong>?<input name="amount" type="text" id="ppAmount" style="text-align:center;" value="5" size="2" /> Donate!</strong>
    </a>
    <input type="submit">
</form>

<div id="formtesting"></div>

答案 6 :(得分:-4)

确保您使用 getElementById ,而不是 getElementByid