【问题标题】:Click button on key up using jquery or javascript使用 jquery 或 javascript 单击键上的按钮
【发布时间】:2017-09-16 07:26:04
【问题描述】:

我正在使用 codeigniter 开发一个购物车。在我的购物车页面中,我需要根据商品数量的变化更新我的购物车。我在按钮点击的帮助下得到了结果。 但我的问题是我需要在我的密钥上获得相同的结果。为此,应点击相应的按键

查看页面

    <td>
     <?php echo form_input(array('name' => $items['rowid']."_qty",'id' => $items['rowid']."_qty", 'value' => $items['qty'], 'maxlength' => '3', 'size' => '5'));  ?>
<button class="btn btn-success " id= "<?php echo $items['rowid']."_qty" ?>" onclick="update_cart('<?=$items['rowid'];?>')" >update</button>
 <script>
  $("#<?php echo $items['rowid']."_qty" ?>").keyup(function(event){

     $("#<?php echo $items['rowid']."_qty" ?>").click();

      });
       </script>
    </td>

更新购物车脚本

function update_cart(itemid)
{ 
  var qty= document.getElementById(itemid+"_qty").value;
        $.ajax({
            type: 'POST',
            url: '<?php echo site_url("ajax_controller1/update_cart/'+itemid+'/'+qty+'")?>',
            data: { id:itemid }, 
            success:function(response){
              $("#shoppingcart_container").html(response);
$(".total").click();

     }
  });

} 

我只需要点击更改数量输入的相应按钮 场地 这是我的演示网址My website link

【问题讨论】:

  • $(".total").trigger("click");

标签: javascript php jquery codeigniter


【解决方案1】:

无需添加额外代码即可触发点击事件。您可以直接将update_cart 与您的form_input 作为

<?php 
    echo form_input(array(
            'name' => $items['rowid']."_qty",
            'id' => $items['rowid']."_qty", 
            'value' => $items['qty'], 
            'maxlength' => '3', 
            'size' => '5',
            'onkeyup' => "update_cart('".$items['rowid']."')"
        )
    );  
?>

用上面的代码替换&lt;td&gt;标签并尝试

【讨论】:

  • 我已经尝试过这个想法,但是 onkeyup 功能不起作用。
  • @YadhuBabu : 你在你的 dom 中获得属性 onkeyup 吗?
  • 我正在尝试 alert("kk"); 上 keyup 功能。那也没有得到
  • 它现在与' 一起工作试试? 'onkeyup' =&gt; "update_cart('$items[rowid]')"
  • 控制台出现错误shopping_cart:542 Uncaught ReferenceError: $items is not defined at HTMLInputElement.onkeyup (shopping_cart:542)
【解决方案2】:

检查一下

$("#id_of_field").keyup(function(event){

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

});

【讨论】:

    【解决方案3】:

    这里是代码,所以你的问题可以解决:

    首先,您需要为输入提供一个通用类,以获取输入的值和 id:

       $('.commonclass').on('input',function(e){
          var id = $(this).attr("id");    
          update_cart(id)
       });
    
    
    function update_cart(itemid)
    { 
      var qty= document.getElementById(itemid+"_qty").value;
            $.ajax({
                type: 'POST',
                url: '<?php echo site_url("ajax_controller1/update_cart/'+itemid+'/'+qty+'")?>',
                data: { id:itemid }, 
                success:function(response){
                  $("#shoppingcart_container").html(response);
    $(".total").click();
    
         }
      });
    
    } 
    

    【讨论】:

      【解决方案4】:
      <td>
         <?php echo form_input(array('name' => $items['rowid']."_qty",'id' => $items['rowid']."_qty",'onkeyup'=>'clickBtn("<?php echo $items['rowid']; ?>")', 'value' => $items['qty'], 'maxlength' => '3', 'size' => '5'));  ?>
         <button class="btn btn-success " id= "updateBtn<?php echo $items['rowid']; ?>" onclick="update_cart('<?=$items['rowid'];?>')" >update</button>
        <script>
          function clickBtn(id){
               $("#updateBtn"+id).click();
           }
        </script>
      </td>
      

      这是最简单的方法

      【讨论】:

        【解决方案5】:

        要调用任何事件,您只需要调用触发函数并将事件名称作为参数传递。

        $(".total").trigger("click");
        

        【讨论】:

          【解决方案6】:

          您可以简单地将onkeyup 属性添加到您的输入元素生成中。抱歉,我的 php 不是很流利,但您可以使用与添加其他属性相同的方式:form_input(array( ..))

          function update_cart(itemid, quantity)
          {
            console.log(quantity);
          
          }
          &lt;input type="text" onkeyup="update_cart('someItemId', this.value)" /&gt;

          【讨论】:

            猜你喜欢
            • 2021-01-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-10-10
            • 1970-01-01
            • 2018-07-18
            相关资源
            最近更新 更多