我有一个带有复选框和 2 个选择框的表单。我有一个 javacript/jQuery 函数,一旦选中复选框,它就会禁用选择框:
function disable(id) {
if($("#checkbox"+id).is(':checked')){
$("#selectbox1"+id).prop('disabled',true);
$("#selectbox2"+id).prop('disabled',true);
}
else {
$("#selectbox1"+id).prop('disabled',false);
$("#selectbox2"+id).prop('disabled',false);
}
}
一切都运转良好。但是,当我选中复选框并提交表单时,请求被标记为“黑洞”。但是,此功能唯一改变的是将“禁用”添加到 <select>
标签。
有人知道如何解决这个问题吗?
最佳答案
禁用的输入不在 POST 数据中
因此,从服务器的角度来看,有选择地将输入标记为禁用与有选择地将其从表单中删除相同 - 这将被检测为表单篡改。
可能的解决方案
要么不禁用该选择,或者使用unlockField允许使用 javascript 操作选择。
关于jquery - 为什么 cakePHP 在通过 jQuery 更改 "disabled"字段后会抛出黑洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23455188/