问题描述:我在使用 laravelcollective/html 组件时遇到了 laravel 转义引号的问题。我需要引号保持未转义,以保持 javascript 代码正常工作。
代码的目的:用户需要指明何时要将表单域保持为空。如果他们不这样做,则需要一些输入。我不希望用户指出一个字段是空的,并且他同时提交了一些输入。此行为由 javascript 通过在单击单选按钮时删除复选框的选中状态来控制,反之亦然。
表单中有多个字段(如果字段应为空,则每个字段都带有单选按钮和一个复选框)。在提交表单之前,所有内容都必须通过 javascript 检查。每个字段都有自己的名称。
字段的刀片代码:
<div>
{!! Form::checkbox('field_empty',1,null, ['id' => 'field_empty'] !!}
</div>
<div>
{!! Form::radio('field', 0, null, ['onClick' => 'unselectCheckbox(this,'field_empty')'] !!}
{!! Form::radio('field', 1, null, ['onClick' => 'unselectCheckbox(this,'field_empty')'] !!}
{!! Form::radio('field', 2, null, ['onClick' => 'unselectCheckbox(this,'field_empty')'] !!}
</div>
javascript代码:
function unselectCheckbox(box,field)
{
if (box.value >= 0)
{
document.getElementsById(field).checked = false;
}
}
(我还有一个 javascript 函数,用于在单击复选框时删除选中的单选按钮,但我没有将它包含在代码中。)
使用上面的代码时,由于 'field_empty' 周围的单引号,我得到一个 laravel 错误。删除单引号不会导致 js 工作。在生成的 html 中使用双引号会导致 '"'。
当然,我可以使用纯 html 代替刀片 - 所以要防止使用 {!! !!} 标签 - ,但我想知道是否可以在刀片中做到这一点,或者在 javascript 中使用另一种方法?
编辑: 我的表单包含多个必须检查的项目。每个项目都有自己的名称,并带有用于确认空值的相应复选框:
<div>
{!! Form::checkbox('field1_empty', 1, null, ['id' => 'field_empty']) !!}
</div>
<div>
{!! Form::radio('field1', 0, null) !!}
{!! Form::radio('field1', 1, null) !!}
{!! Form::radio('field1', 2, null) !!}
</div>
<div>
{!! Form::checkbox('field2_empty', 1, null, ['id' => 'field_empty']) !!}
</div>
<div>
{!! Form::radio('field2', 0, null) !!}
{!! Form::radio('field2', 1, null) !!}
{!! Form::radio('field2', 2, null) !!}
</div>
<div>
{!! Form::checkbox('field3_empty', 1, null, ['id' => 'field_empty']) !!}
</div>
<div>
{!! Form::radio('field3', 0, null) !!}
{!! Form::radio('field3', 1, null) !!}
{!! Form::radio('field3', 2, null) !!}
</div>