另一个按钮点击jQuery提交按钮

时间:2016-01-11 11:36:04

标签: jquery html

我的页面上有提交:

<input type=​"submit" name=​"nextstep" value=​"Next" id=​"nextstep" class=​"newaddressnextstepbutton">​

当我点击此提交时,我需要在第一个按钮上进行另一次提交,具体名称如下:

<input type="button" name="selectBillingAddress" value="First one" class="selectbillingaddressbutton" onclick="setLocation('/checkout/selectbillingaddress?addressId=537')">
<input type="button" name="selectBillingAddress" value="Second one" class="selectbillingaddressbutton" onclick="setLocation('/checkout/selectbillingaddress?addressId=647')">

我是这样做的:

$("input[name='nextstep']").click(function() {
        $("input[name='selectBillingAddress']")[0].submit();
});

但这不起作用。我收到此错误:Uncaught TypeError: $(...)[0].submit is not a function 我找到了此错误"Submit is not a function" error in JavaScript的答案,但我在此页面上没有input[name='submit']

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

.submit()仅适用于form元素。

相反,您需要在第一个匹配的DOM元素上触发本机点击事件:

e.g。

$("#nextstep").click(function(e) {
     e.preventDefault();
     $("[name='selectBillingAddress']")[0].click();
});

说明:

  • 你应该使用id选择器来定位元素(更快/更短)
  • 作为一种良好做法,您应该阻止原始点击事件提交表单,而不是仅仅假设重定向会覆盖它。
  • 您需要在DOM元素上使用.click()来调用本机点击处理程序。

答案 1 :(得分:0)

您需要在表单上调用提交功能,而不是按钮。 所以它应该是这样的:

  $("input[name='nextstep']").click(function() {
       $("form").submit();
  });

如果您的网页上有多个表单,请为表单提供一个ID,然后使用该表单。

答案 2 :(得分:0)

抱歉:这是更新的。

$("input[name='nextstep']").click(function() {
        $("input[name='selectBillingAddress']").eq(0).trigger("click");
});

答案 3 :(得分:-1)

尝试调用按钮的自然点击,

$("input[name='nextstep']").click(function() {
     $("input[name='selectBillingAddress']")[0].click();
});

或者只是抓住最近的表单并在其上调用.submit()。由于表单以外的元素不具有提交功能作为其成员。