为什么Jquery点击功能需要2次点击

时间:2016-05-04 16:54:48

标签: javascript jquery html

我点击按钮填充隐藏值以与php一起使用。这个jQuery让我点击按钮两次,然后将值输入隐藏字段,如何只进行一次点击?

jquery的

$(document).ready(function() {

    $('.btn-group button').click(function(){

        $("#hidd").val( $(".btn-group").find('.active').val());

    });

});

HTML

    <div class="btn-group">
        <button  type="button" class="btn btn-default" value="150">150</button> 
        <button  type="button" class="btn btn-default" value="450">450</button>
    </div>  
    <input type="hidden" id="hidd" name="pass_amount" value=""></input>

2 个答案:

答案 0 :(得分:1)

您应该更改此行:

$("#hidd").val( $(".btn-group").find('.active').val());

这一个:

$("#hidd").val( $(this).val());

因为第一次单击使按钮处于活动状态,然后第二次单击将检索先前激活的按钮的值。

答案 1 :(得分:1)

您可以将JQuery&#39; .click.on API一起使用。

这样您就可以定位单击的特定按钮,您可以使用this.value简单获取按钮值!

如果按钮(单击了该按钮)激活了该类,则可以使用JQuery的.hasClass API。

此代码段使用ASI(Automatic Semicolon Inversion)。

&#13;
&#13;
$(document).ready(function() {
  $('.btn-group button').on('click', function() {
    $("#hidd").val( this.value )
    /*
      To target just the class active you can do...
      if ($(this).hasClass('active') {
        $("#hidd").val( this.value )
      }
    */
  })
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="btn-group">
  <button  type="button" class="btn btn-default" value="150">150</button> 
  <button  type="button" class="btn btn-default" value="450">450</button>
</div>  
<input type="value" id="hidd" name="pass_amount" value="" />
&#13;
&#13;
&#13;