【问题标题】:jQuery Field Change Submit not workingjQuery字段更改提交不起作用
【发布时间】:2012-09-10 13:26:43
【问题描述】:

我有下面的表单,我想从中删除(或隐藏它)提交按钮。

<form action="cart.php" method="post">
<input name="quantity" type="text" value="3" size="1" maxlength="2" />
<input name="adjustBtn" type="submit" value="change" />
<input name="item_to_adjust" type="hidden" value="1" />
</form>

在我已包含在页面中的名为 test.js 的 jQuery 文件中,当输入字段“数量”发生更改时,我应该提交表单,但它没有,我无法让它工作,我已经尝试过 SO 上其他帖子的各种表单提交功能。一个人甚至说如果提交按钮有一个提交的名称,它不会工作,但我没有。

$(document).ready( function() {

    $('#quantity').change(function(){
       //$(this).closest("form").submit(); <-- commented out as not working either.
       //$(this).closest('form')[0].submit(); <-- commented out as not working either.
       $('#adjustBtn').submit();
    });

} );

有人知道为什么它不会提交表单吗?我在 chrome 和 IE 中测试过。

【问题讨论】:

    标签: php jquery forms input submit


    【解决方案1】:

    应该是:

    <form action="cart.php" method="post" id="autoSubmit">
    <input name="quantity" type="text" value="3" size="1" maxlength="2" />
    <input name="item_to_adjust" type="hidden" value="1" />
    </form>
    

    还有 jQuery:

    $(document).ready( function() {
    
        $('#quantity').change(function(){
           $('#autoSubmit').submit();
        });
    
    } );
    

    【讨论】:

      【解决方案2】:

      您需要提交form 而不是button

      $("#adjustBtn").closest("form").submit();
      

      另外,您没有给您的adjustBtn 提供id,因此$("#adjustBtn") 将不起作用;

      <input id="adjustBtn" name="adjustBtn" type="submit" value="change" />
      

      #quantity 也会发生同样的情况,这就是为什么 change 处理程序不会被触发,您还需要添加 id

      <input id="quantity" name="quantity" type="text" value="3" size="1" maxlength="2" />
      

      【讨论】:

      • 我只是改变了这个,但仍然没有,为了让它更有趣,我在 .change 行之后添加了console.log("Data Changed! Submit!!!!");,当我更改输入字段时,我在控制台中什么也没有。让我觉得它甚至没有注册。
      • @medoix:哦,我明白了,您错过了输入中的id 属性。 $("#id") 选择 id,而不是 name。请查看我更新的分析器。
      • sigh.. 谢谢哈哈,简直不敢相信用 ID 代替 Name 字段这么简单。
      • 这是否适用于多行项目?即具有相同输入字段且 id 为“数量”的多个表单?
      • @medoix:id 在整个页面中必须是唯一的。它应该可以工作,但不是很正确。另一种方法是按名称选择,即使用 $("[name='quantity']") 代替 $("#quantity"),尽管选择器会稍微慢一些。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多