Javascript 复选框触发输入,反之亦然

Javascript 复选框触发输入,反之亦然,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我目前正在制作一份表格,需要完成以下工作: 如果选中了输入字段(在本例中为数量字段)旁边的复选框,则将输入设置为“1”。如果数量字段大于1,则复选框保持选中状态 如果未选中该复选框,则数量字段将重置为0。或者,如果用户在“数量”字段中输入0,则复选框也将取消选中 问题 “增加”按钮当前需要单击两次以增加数量 当“数量”字段的数字大于0,然后减少为0时,“增加”按钮将不再工作 有人能看出我的错误吗 jQuery('.exhibitorBooking--table .desc input[typ

我目前正在制作一份表格,需要完成以下工作:

如果选中了输入字段(在本例中为数量字段)旁边的复选框,则将输入设置为“1”。如果数量字段大于1,则复选框保持选中状态

如果未选中该复选框,则数量字段将重置为0。或者,如果用户在“数量”字段中输入0,则复选框也将取消选中

问题

  • “增加”按钮当前需要单击两次以增加数量
  • 当“数量”字段的数字大于0,然后减少为0时,“增加”按钮将不再工作
有人能看出我的错误吗

jQuery('.exhibitorBooking--table .desc input[type="checkbox"]').on('change', function(){
        if(this.checked){
            jQuery(this).parents('tr').find('.qty-field input[type="text"]').val('1');
        } else {
            jQuery(this).parents('tr').find('.qty-field input[type="text"]').val('0');
        }
    });
    jQuery('.exhibitorBooking--table .qty-field input[type="text"]').on('change', function(){
        if(jQuery(this).val() == 0){
            jQuery(this).parents('tr').find('input[type="checkbox"]').attr('checked', false);
        } else if(jQuery(this).val() == 1) {
            jQuery(this).parents('tr').find('input[type="checkbox"]').trigger('change').attr('checked', true);
        } else {
            jQuery(this).parents('tr').find('input[type="checkbox"]').attr('checked', true);
        }
    });


演示:

您的第二个块正在比较文本字段的输入,即文本。您必须与
“0”
“1”
进行比较,而不是与
0
1
进行比较。您还应该使用jQuery选择器查询复选框和输入元素一次,然后将其存储在局部变量中,您的代码可以工作,但您需要将.attr改为.prop at复选框。那是all@daremachine不应该是
prop
@Tushar抱歉,没有对您的代码进行注释,您的代码没有问题。我的道歉。@Tushar这是我现在遇到的一个问题-每当文本输入框发生更改时,是否有任何方法可以触发复选框#chkStand-1-1上的更改事件?当我尝试添加触发器时,一切都停止工作
jQuery(document).ready(function() {
    $('#chkStand-1-1').on('change', function() {
        var value = $(this).is(':checked') ? 1 : 0;
        $('.input-text').val(value);
    });

    $('.input-text').on('keyup', function() {
        $('#chkStand-1-1').prop('checked', (parseInt($(this).val(), 10) > 0));
    });
});