使用jquery更改name属性的值

时间:2017-04-19 07:09:09

标签: javascript jquery

我在表格中打印数据并尝试更改特定hidden field的名称,但我的代码不能如下所示

        <table class="table table-hover">
            <thead>
            <tr>
                <th>
                    <input type="checkbox">
                </th>
                <th>sr no</th>
                <th>seller</th>
                <th>shape</th>
                <th>size</th>
                <th>color</th>
                <th>discount</th>
                <th>client</th>
            </tr>
            </thead>
            <tbody>
            @foreach($cod_details as $cod)
                <tr>
                    <td>
                        <input type="checkbox" name="ids[]" id="{{ $cod->id }}" value="{{ $cod->id }}">
                        <input type="hidden" value="{{ $cod->report_no }}" id="{{ $cod->report_no }}" name="" class="report">
                    </td>
                    <td>{{ $cod->id }}</td>
                    <td>{{ $cod->seller }}</td>
                    <td>{{ $cod->shape }}</td>
                    <td>{{ $cod->size }}</td>
                    <td>{{ $cod->color }}</t
                    <td>{{ $cod->discount }}</td>
                    <td>{{ $cod->client }}</td>
                </tr>
            @endforeach
            </tbody>
        </table>

这显示了表格中的所有细节并且工作正常。

$(document).ready(function(e){
        $('input[type="checkbox"]').click(function(){
            if($(this).prop("checked") == true){
                $(this).closest('input[type="hidden"]').attr('name','report_no[]');

            }
            else{

            }
        });
    });

我尝试在选中复选框时添加name = report_no[],但我不能。

1 个答案:

答案 0 :(得分:0)

它是DOM中的下一个元素,紧跟在复选框之后。所以在你的处理程序中:

var input = $(this).next();

...将为您提供input字段的jQuery包装器。

旁注:if($(this).prop("checked") == true){是一种非常冗长的撰写if (this.checked)的方式,我只是使用它。 : - )

所以:

$('input[type="checkbox"]').click(function() {
    if (this.checked) {
        $(this).next().attr('name','report_no[]');
    }
    else {

    }
});

如果要在未选中复选框时清除它,则:

$('input[type="checkbox"]').click(function() {
    $(this).next().attr("name", this.checked ? "report_no[]" : "");
});