Woocommerce 人员字段加减按钮

Woocommerce 人员字段加减按钮,woocommerce,woocommerce-bookings,Woocommerce,Woocommerce Bookings,我有一个带有动态创建ID的“人数”表单字段。该字段是一个QTY input type=“number”,我希望在每一侧使用加号/减号键 但是,我添加了按钮和一些jquery,因为我有多个“person\u type”字段,加/减onclick会同时影响所有字段。如何使用foreach之类的工具来定位各个字段 这是我目前的代码 // get IDs from dynamic person_type field $("input[id^='wc_bookings_field

我有一个带有动态创建ID的“人数”表单字段。该字段是一个QTY input type=“number”,我希望在每一侧使用加号/减号键

但是,我添加了按钮和一些jquery,因为我有多个“person\u type”字段,加/减onclick会同时影响所有字段。如何使用foreach之类的工具来定位各个字段

这是我目前的代码

// get IDs from dynamic person_type field
        $("input[id^='wc_bookings_field_persons_']").each(function() {
            var id = parseInt(this.id.replace("wc_bookings_field_persons_", ""), 10);
            var qty = $("#wc_bookings_field_persons_" + id);
            
            // target the form
            $('form.cart').on( 'click', 'button.plus, button.minus', function() {
            
              // Get current quantity values
              var qty = $( this ).closest( 'form.cart' ).find( "#wc_bookings_field_persons_" + id);
               // also tried this 
                // var qty = $( this ).closest( 'form.cart' ).find( "#wc_bookings_field_persons_" + id + ".qty");

              var val   = parseFloat(qty.val());
              var max = parseFloat(qty.attr( 'max' ));
              var min = parseFloat(qty.attr( 'min' ));
              var step = parseFloat(qty.attr( 'step' ));
   
              // Change the value if plus or minus
              if ( $( this ).is( '.plus' ) ) {
                 if ( max && ( max <= val ) ) {
                    qty.val( max );
                 } 
              else {
                 qty.val( val + step );
                   }
              } 
              else {
                 if ( min && ( min >= val ) ) {
                    qty.val( min );
                 } 
                 else if ( val > 1 ) {
                    qty.val( val - step );
                 }
              } 
        
        });

   });
//从动态人员类型字段获取ID
$(“输入[id^='wc\u bookings\u field\u persons\u'])。每个(函数(){
var id=parseInt(this.id.replace(“wc\u bookings\u field\u persons\uu”),10);
var数量=$(“#wc#U预订#U字段#U人员#”+id);
//以表单为目标
$('form.cart')。在('click','button.plus',button.减号',function()上{
//获取当前数量值
变量数量=$(this).closest('form.cart').find(#wc_bookings_field_persons_+id);
//我也试过这个
//变量数量=$(this).closest('form.cart').find('wc#u bookings_field_persons_“+id+”.qty”);
var val=parseFloat(qty.val());
var max=parseFloat(数量属性('max'));
var min=parseFloat(数量属性('min'));
var step=parseFloat(数量属性('step');
//如果为正或负,请更改该值
如果($(this).is('.plus')){
如果(最大值和(最大值=val)){
数量val(最小值);
} 
否则如果(val>1){
数量val(val-步骤);
}
} 
});
});
还有html

    <p class="form-field form-field-wide <?php echo esc_attr( implode( ' ', $class ) ); ?>">
     <label for="<?php echo esc_attr( $name ); ?>"><?php echo esc_html( $label ); ?>:</label>


   <button type="button" class="minus" >-</button>

   <input class="qty" 
type="number"
value="<?php echo ( ! empty( $min ) ) ? esc_attr( $min ) : 0; ?>"
step="<?php echo ( isset( $step ) ) ? esc_attr( $step ) : ''; ?>"
min="<?php echo ( isset( $min ) ) ? esc_attr( $min ) : ''; ?>"
max="<?php echo ( isset( $max ) ) ? esc_attr( $max ) : ''; ?>"
name="<?php echo esc_attr( $name ); ?>"
id="<?php echo esc_attr( $name ); ?>"
/> 

     <button type="button" class="plus" >+</button>

   <?php echo ( ! empty( $after ) ) ? esc_html( $after ) : ''; ?>

   </p>