我有一个页面上有一个表单,如果用户以非管理员帐户登录,则这些字段应该是只读的。所有文本字段都表现正常,但下拉菜单仍允许更改值。
function setReadonly(){
//Text Fields
id_first_name.readOnly=true;
id_middle_name.readOnly=true;
id_last_name.readOnly=true;
id_last_4_ssn.readOnly=true;
//Dropdowns
$("#id_gender").attr("readonly", true);
$("#id_department").attr("readonly", true);
}
下拉栏与文本字段一样显示为灰色,但可以像往常一样更改选项。我试过了
$("#id_gender").attr("disabled", true);
$("#id_gender").attr("disabled", "disabled");
$("#id_gender").prop("disabled", "disabled");
这两个attr并没有解决问题,而道具失败是因为我正在运行v1.5
答案 0 :(得分:1)
$("id_gender").attr("disabled", true);
$("id_gender").attr("disabled", "disabled");
$("id_gender").prop("disabled", "disabled");
以上所有语句都有选择器,将应用于标签“id_gender”
但是从您在问题中发布的函数中我相信上述3个语句将应用于id为“id_gender”的元素。因此,请在选择器跟随之前添加“#”,这是正确的语法:
$("#id_gender").attr("disabled", true);
$("#id_gender").attr("disabled", "disabled");
$("#id_gender").prop("disabled", "disabled");
如果这有用或者您有任何疑问,请告诉我。
答案 1 :(得分:0)
事实证明,在ajax调用返回表单数据之前,我将字段设置为只读和禁用。当它试图将数据填入禁用字段时,它会自动启用它。这些字段都是只读的,但任何已禁用的attr都被删除了。
需要做
$(document).ajaxStop(function(){
[if user.readonly] setReadonly();
});
$("#id_gender")。attr("禁用",true)工作正常。