Woocommerce 人员字段加减按钮
我有一个带有动态创建ID的“人数”表单字段。该字段是一个QTY input type=“number”,我希望在每一侧使用加号/减号键 但是,我添加了按钮和一些jquery,因为我有多个“person\u type”字段,加/减onclick会同时影响所有字段。如何使用foreach之类的工具来定位各个字段 这是我目前的代码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
// 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>