为什么readonly的false属性不适用于文本框?

时间:2019-05-14 10:59:18

标签: javascript jquery asp.net

我有一个MVC下拉列表,当其值更改时,它应使文本框为只读状态,并可以对某些值进行编辑。我试过了,但是没用。

$("#Users_UserGroupID").change(function () {
  if ($("#Users_UserGroupID").val != "2") {
    $("#Users_ClientName").prop("readonly", true);
    $("#Users_ClientName").val("")
  } else if ($("#Users_UserGroupID").val == "2") {
    $("#Users_ClientName").attr("readonly", false)
    $("#Users_ClientName").val("")
  }
});

2 个答案:

答案 0 :(得分:2)

您需要调用val()方法,而不是将引用与val进行比较。还要注意,逻辑可以简化。试试这个:

$("#Users_UserGroupID").change(function () {
  $("#Users_ClientName").prop("readonly", $("#Users_UserGroupID").val() != "2").val("")
});

答案 1 :(得分:0)

可以请你试试

$("#Users_ClientName").attr("readonly", "readonly");

代替

Users_ClientName").prop("readonly", true);

因为只读不接受true或false。

要删除您可以使用

$("#Users_ClientName").removeAttr("readonly");

希望这会起作用。