我有一个搜索表单,其中包含许多带有 class='cambio' 的复选框,以及一个 ID 为 #cambio 的隐藏字段。
这是表单的工作方式:
- 当一个复选框被选中时,他的值被发送到这个隐藏的输入。
- 默认情况下禁用此隐藏输入,仅在设置值时才启用。
- 我使用 $_GET['cambio'] 获取此字段的默认值,因此我可以在页面加载时保持表单更新。
问题是当我加载页面时,我在隐藏的输入中获得了默认值,但相关的复选框都未选中。
我的问题是:只有当隐藏输入中存在他的值时,我如何才能将这些复选框设置为“已选中”?
这是我的代码:
jQuery(function($) {
$("input:checkbox.cambio").change(function() {
var newArr = $("input:checkbox.cambio:checked").map(function() { return this.value; });
$("#cambio").val(newArr.get());
if($('#cambio').val() !== "") {
$('#cambio').prop('disabled', false);
} else { $('#cambio').prop('disabled', true); }
});
});
jQuery(document).ready(function($) {
if($('#cambio').val() !== "") {
$('#cambio').prop('disabled', false);
} else { $('#cambio').prop('disabled', true); }
});
请注意,有一些重复的代码。如果您知道如何精简代码,欢迎提出任何建议。
谢谢!