这是我的投递箱,然后是隐藏的框。这些都在表格内。
<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>
执行后隐藏的输入值变空。哪里错了。请帮帮我吗?
答案 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选择的,因此您无法从选项框中获取值。