我想获得创建新用户的级别权限。 我使用ajax。 如何在 js 中捕获复选框中的值?
这是我的代码
.html
<div class="form-group">
<label>Hak Akses Register</label>
<div class="row">
<?php foreach ($dlevel as $level) { ?>
<div class="col-md">
<input type="checkbox" value="<?php echo $level['id']; ?>" id="permission[]" />
<label for="permission"><?php echo $level['nama']; ?></label>
</div>
<?php } ?>
</div>
</div>
.js
var hak = $("#permission").val();
console.log(hak);
使用id
不起作用,因为它们必须是唯一的,并且数组符号也不适用于您需要使用name
的 id,并且也以动态方式使用
<input type="checkbox" value="<?php echo $level['id']; ?>" name="permission[<?php echo $level['id'];?>]" class="permission_cls" />
为所有权限复选框指定一个类,例如permission_cls
获取已检查的项目
<script>
var permissions = [];
$('input.permission_cls:checked').each(function (i, item) {
permissions.push( $(item).attr('name') );
});
</script>
尝试使用:
.prop("checked")
或
.attr("checked")
.prop
计算值为是/否,如果选中,则返回.attr
选中"已选中",如果未选中,则返回为空。 Hoever,如果你想单独定位每个人,使用 ID="permission[]" 不会让你获得这种能力。 您需要一种方法来唯一定位每个 ID,因此如果 ID 可以唯一,那是最好的方法,或者@Viney答案在使用 CSS 或使用 value 属性的替代方案方面做得很好。 如果不了解上下文,就很难增加更多的清晰度。
至于回发到服务器并在那里处理,请确保每个复选框都有一个名称;名称可以是唯一的,您可以单独评估每个复选框(注意:未选中的复选框不会回发到服务器(,因此您可以这样做,或者为复选框指定相同的名称, 它应该在检查项目的一个长字符串值中给出所有响应......
有关更多信息,请参阅此在线文章:http://net-informations.com/jq/iq/checked.htm