【问题标题】:Submit with javascript使用 javascript 提交
【发布时间】:2013-08-07 22:36:26
【问题描述】:

如何指定使用哪个提交按钮提交?

当前示例仅提交第一个提交按钮,使用 $("form").submit();但是我怎样才能让它通过 id 或 name 选择提交按钮?

<html>
<script>
$("form").submit();
</script>

<form action="<?=$_SERVER['PHP_SELF']?>" method="post" />

//other inputs


<input type="submit" value="Enter" name="enter" id="enter">
<input type="submit" value="Void" name="void" id="void">
<input type="submit" value="Refund" name="refund" id="refund">

</form>

</html>

【问题讨论】:

  • 顺便说一句,您不应该有重复的 ID。
  • 每个元素也应该只有一个 id
  • @FabrícioMatté 哎呀,这只是一个复制和粘贴错字,抱歉。
  • 没有问题,回到主题,从 JS 触发的提交事件并没有发送我记忆中的任何提交按钮值。我想 Blender 的解决方案是你最好的选择,虽然我还没有测试过。

标签: javascript jquery html


【解决方案1】:

模拟对该元素的点击:

$("#circle2").click();

另外,您不需要action="&lt;?=$_SERVER['PHP_SELF']?&gt;"。表单默认提交到当前页面。

【讨论】:

    【解决方案2】:

    首先,为什么要提交同一个表单,但要使用 3 个不同的按钮? 这是一个糟糕的结构。您的代码还包含所有 3 个带有“id”属性的按钮,该属性包含在 &lt;input&gt; 标记中两次。

    根据您的问题,我可以确定您希望提交按钮在不同条件下说出不同的内容。

    有一个像这样的按钮:

    <input type="submit" name="submit" value="Enter">
    

    您可以随时更改按钮的内容,或者使用 JQuery 的外观:

    if(condition){
    $('#submit').val('.....');
    // You can also change more stuff as you want.
    }
    

    然后你会想提交表单

    $('#submit').click(function(e)){
    e.preventDefault();
    $('form').submit();
    }
    

    【讨论】:

    • 点击提交按钮时,浏览器发送的POST请求中包含该按钮的namevalue属性。在这里,即使您关闭了 JavaScript,您也可以通过同一个表单输入、作废和退款。
    • 谢谢,我的回答在 Javascript 开启时适用,因为用户的代码中已经有 Javascript。
    • 是的,但这就是问题的全部。通过提交这样的表单,您不会发送额外的参数。
    • 有一个由 PHP 设置的隐藏输入字段怎么样?
    【解决方案3】:

    按 ID

    您可以使用$('#my_btn')轻松地通过id选择元素,您可以使用jQuery方法click()点击它。

    按名称(或任何其他属性)

    其他属性有点难(但并不复杂) 您选择带有$('input[name=some_name]') 的元素

    使用您的代码的示例

    这是一个示例,它显示了如何按名称获取元素并单击它们,单击提交按钮以查看会发生什么:http://jsfiddle.net/nabil_kadimi/99v93/2/

    【讨论】:

      猜你喜欢
      • 2016-03-06
      • 1970-01-01
      • 2016-01-04
      • 2014-01-04
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多