繁体   English   中英

jQuery禁用输入不起作用

[英]jQuery disabling input not working

我在页面上有一些输入元素,并且正在根据一对单选按钮的设置尝试启用或禁用它们。 我正在使用以下Javascript函数(为我添加了控制台日志记录,以查看发生了什么事情)...

function EnableIndividualOrCompanyControls(individual) {
  console.log("EnableIndividualOrCompanyControls(" + individual + ")");
  console.log("Title value is " + $("#Title").val());
  console.log("Title was " + $("#Title").prop("disabled"));
  $("#Title").prop("disabled", !individual);
  console.log("Title is now " + $("#Title").prop("disabled"));
  console.log(" ");
  $("#Surname").prop("disabled", !individual);
  $("#CompanyName").prop("disabled", individual);
}

更改单选按钮的值时,将调用该方法,并且参数具有正确的值,但是,永远不会禁用“标题”,“姓氏”和“公司名称”输入。

从控制台中获取的示例如下所示:

EnableIndividualOrCompanyControls(false)
Title value is Sir
Title was false
Title is now false

因此,正在调用该函数,该参数具有正确的值,我正确地获取了Title输入元素(如您从正确地报告其值为“ Sir”的事实中可以看到的那样),但是这些元素并未被禁用。

奇怪的是,我在页面上的其他地方使用了完全相同的代码,并且工作正常。 此功能有效...

function EnableOnlineControls(enable) {
  $("#UserName").prop("disabled", !enable);
  $("#Password").prop("disabled", !enable);
  $("#PasswordAgain").prop("disabled", !enable);
}

有人知道为什么第一个不起作用吗? 如果有帮助,这里是这些表单元素的HTML(为了清楚起见,删除了div周围的内容)...

<input class="form-control" id="Title" name="Title" value="" />
<input class="form-control" id="Surname" name="Surname" value="" />
<input class="form-control" id="CompanyName" name="CompanyName" value="" />

我尝试用单引号替换双引号,但是没有任何区别。

JQuery readOnly奇怪行为的答案解释了您的问题。

individual来自复选框; 它是一个字符串。 您必须将其正确转换为布尔值:

$("#Surname").prop("disabled", (individual == "false" ? false : true));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM