从laravel 5中的投递箱中选择项目时,应更改隐藏的输入值

时间:2016-03-30 17:50:07

标签: javascript jquery laravel-5

这是我的投递箱,然后是隐藏的框。这些都在表格内。

 <tr>
     <td> <b>{!! Form::label('Types', 'Type') !!}</b></td>

     <td> {!! Form::select('type', array('type' => 'type','Orange' => 'Orange', 'Red' => 'Red','Green' => 'Green'), 'type') !!}</td>
</tr>

{!! Form::hidden('color') !!}

脚本位于表单后面。

<script>
    $(document).ready(function () {
        $('#type').on('change', function () {
            $('#color').val($(this).val());

        });

    });
</script>

执行后隐藏的输入值变空。哪里错了。请帮帮我吗?

2 个答案:

答案 0 :(得分:0)

尝试按名称选择列表:

$(document).ready(function () {
    $('[name="type"]').on('change', function () {
        $('#color').val($(this).val());
    });
});

因为您的代码中没有ids#type#Orange#Red#Green),因为Form::select只会生成名称为type的select标记和值为ids的选项,如下所示:

<select name='type'>
     <option value='type'>type</option>
     <option value='Orange'>Orange</option>
     <option value='Red'>Red</option>
     <option value='Green'>Green</option>
</select>

因此,您尝试将change事件附加到未在DOM中显示的元素。

或者您可以使用

添加id
{!! Form::select('type', array(...), 'type', ['id' => 'type']) !!}

然后您就可以使用id选择器:

$('#type').on('change', function () {

希望这有帮助。

答案 1 :(得分:0)

将您的代码更改为此

{!! Form::select('type', array('type' => 'type','Orange' => 'Orange', 'Red' => 'Red','Green' => 'Green'), 'type', ['id' => 'type']) !!}

您需要将隐藏字段更改为此

{!! Form::hidden('color', '', ['id' => 'color']) !!}

Laravel Form :: select仅为标签添加名称而不是id。由于您的jquery是按ID选择的,因此您无法从选项框中获取值。