【问题标题】:fill text input when checking jquery检查jquery时填充文本输入
【发布时间】:2017-06-01 12:12:59
【问题描述】:

我的 laravel 项目中有一个循环,其中包含复选框和输入

@foreach($s as $sh)
<tr>
<td><input type="checkbox" name="service_id[]" class="checkser" value="{{$sh->id}}"></td>
<td class="checkservice">{{$sh->name}}</td>
<td> <input type="text" class="form-control checkser inputservice" placeholder="{{trans('home.quantity')}}" name="ser_quantity[]" ></td>
<td>{{$sh->price}}</td>
</tr>
@endforeach

选中复选框时,我需要用 (1) 填充文本输入
并在未选中复选框时清空它

我尝试了很多方法,但只用下一个输入都失败了

【问题讨论】:

    标签: javascript jquery html checkbox


    【解决方案1】:

    您可以使用jquery 执行此操作,并将change 事件处理程序绑定到您的checkbox

    另外,使用closest 方法。参见参考here

    $('.checkser').change(function() {
        if($(this).is(":checked")) {
           $(this).closest('tr').find('.inputservice').val(1);
        }
        else
           $(this).closest('tr').find('.inputservice').val('');        
    });
    

    【讨论】:

    • 感谢您的帮助
      我以前用过这个,但它填满了所有
      如何只检查下一个 '$('.checkservice').change(function() { if( $(this).is(":checked")) { $(this).next('.inputservice').val(1); } else $$(this).next('.inputservice').val( ''); });`
    • 抱歉检查了我的编辑,它在单字段中运行良好,但在循环中我尝试过 .next 但无法正常工作
    • 请看我的回答。
    【解决方案2】:

    试试 jQuery is() 方法

    if($(".checkser").is(':checked'))
        $(".inputservice").val(1);  // checked
    else
        $(".inputservice").val('');  // unchecked
    

    只需使用$(selector).is(':checked')

    它返回一个布尔值。

    【讨论】:

    • 感谢您的帮助,我尝试了第一种评论方法,效果很好
    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 2013-08-14
    • 2018-01-29
    • 2013-06-18
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    相关资源
    最近更新 更多