javascript - VueJS 表单输入绑定(bind)

标签 javascript php laravel vue.js

嘿,我是 Vue 的初学者,只有在使用 foreach 循环时才遇到这个问题
问题:每当我选择任何复选框时,所有复选框都会被选中。

创建.blade.php

  @foreach ($permissions as $permission)
              <li class="list-group-item bold">
                  <input type="checkbox" id="{{$permission->id}}"
                  :custom-value="{{$permission->id}}" v-model="permissionsSelected">
                  <label for="{{$permission->id}}">{{$permission->display_name}}
                  <em>{{$permission->description}}</em></label>
              </li>
            @endforeach
          </ul>
    <input type="hidden" name="permissions" :value="permissionsSelected">



<script>
 var app = new Vue({
   el: '#app',
   data: {
     permissionsSelected: ''
   }
 });
</script>

最佳答案

你的问题似乎是<input>失踪了:value=".." 。此外,permissionsSelected 应该是一个数组: permissionsSelected: []

我建议你不要混合 Laravel Blade @foreach与 vue.

改为传递$permissions到 javascript 并使用 vue 渲染列表。您可以在 this answer 中查看如何执行此操作

还有一件事,来自 Laravel 文档

Since many JavaScript frameworks also use "curly" braces to indicate a given expression should be displayed in the browser, you may use the @ symbol to inform the Blade rendering engine an expression should remain untouched

这是更新后的示例

<div id="app">
  <ul>
    <li class="list-group-item bold" v-for="permission in permissions">
      <input
        type="checkbox"
        :id="permission.id"
        :value="permission.id"
        v-model="permissionsSelected"
      >
      <label :for="permission.id">@{{ permission.display_name }}
        <em>@{{ permission.description }}</em>
      </label>
    </li>
  </ul>
  <input type="hidden" name="permissions" :value="permissionsSelected">
</div>

<script>
  var permissions = JSON.parse("{{ json_encode($permissions) }}");

  var app = new Vue({
    el: '#app',
    data: {
      permissions: permissions,
      permissionsSelected: [],
    }
  });
</script>

关于javascript - VueJS 表单输入绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46843264/

相关文章:

javascript - jquery 表单提交在 IE 中不起作用

javascript - Angular 5 阻止 iframe 谷歌地图

Javascript : onHashchange Test

php - FullCalendar JSON 事件源问题

php - 排序 multidim 数组 : prioritize if column contains substring, 然后按第二列排序

PHP foreach 替换数组内的值

php - try catch laravel 不适用于重复输入

javascript - Openlayer 与大数据

database - 我们可以在 Laravel 中使用 Firebase 数据库吗?优缺点都有什么?

php - 未捕获的类型错误 : call_user_func_array(): Argument #1 ($function) must be a valid callback