【问题标题】:In Laravel 5.1 Can't post value of checkbox在 Laravel 5.1 中不能发布复选框的值
【发布时间】:2015-11-01 19:42:22
【问题描述】:

我在一个表单中有 2 个复选框,我无法发布它们的值。 我已经尝试过了:

<div class="form-group col-md-4">
                <label class="col-md-6" for="invoiced">
                    <input type="checkbox" id="invoiced" value="false" name="project[invoiced]"> 
                     Invoiced </label>
                <label class="col-md-6" for="tobeinvoiced">
                    <input type="checkbox" id="tobeinvoiced" value="true" name="project[tobeinvoiced]" checked> 
                    To be Invoiced </label>
            </div>

使用此脚本更改 2 个复选框的值的真或假:

<script type="text/javascript">
            $('#tobeinvoiced').change(function(){
                cb = $(this);
                cb.val(cb.prop('checked'));
            });
            $('#invoiced').change(function(){
                cb = $(this);
                cb.val(cb.prop('checked'));
            });
            </script>

但是当我提交时,传递的值被设置为null。

【问题讨论】:

  • 所以要发送复选框的值?其他表单元素还能正常工作吗?
  • 是的,所有其他输入(文本、日期、数字)都可以正常工作,但复选框的值为空!
  • 未选中的复选框不会在请求中作为参数发送。如果它在请求中存在,则表示该复选框已标记,否则未标记..

标签: javascript php laravel-5.1


【解决方案1】:

试试这个

$project = $request->input('project');
$tobeinvoiced = $project['tobeinvoiced'];

基本上你使用的命名约定使它成为一个数组,你不能直接在 laravel 的请求输入中调用一个数组

希望这会有所帮助。

【讨论】:

  • 我忘了提到我正在使用 Json enctype,所以使用 Input::get('project') 我可以获取所有输入值,所以一切都适用于复选框值。
【解决方案2】:

我找到了解决问题的方法,这是链接:Solution

我的代码变成了:

<label class="col-md-6" for="invoiced">
   <input type="checkbox" key="invoiced"/>
   <input type="hidden" id="invoiced" value="0" name="project[invoiced]"> 
   Invoiced </label>
<label class="col-md-6" for="tobeinvoiced">
   <input type="checkbox" key="tobeinvoiced" checked/>
   <input type="hidden" id="tobeinvoiced" value="1" name="project[tobeinvoiced]"> 
   To be Invoiced </label>

使用此脚本:

 $(document).ready(function () {
                $('[key]').change(function () {
                    var key = $(this).attr('key');
                    $($('[name="project[' + key + ']"]')).val($(this).is(':checked') ? 'true' : 'false');
                });
            });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    相关资源
    最近更新 更多