Javascript jQuery禁用输入不工作
我在一个页面上有一些输入元素,我正试图根据一对单选按钮的设置来启用或禁用它们。我正在使用下面的Javascript函数(为我添加了控制台日志以查看发生了什么事情) 当单选按钮值更改时,将调用该方法,并且参数具有正确的值,但是标题、姓氏和公司名称输入永远不会被禁用 控制台中的示例如下所示Javascript jQuery禁用输入不工作,javascript,jquery,html,Javascript,Jquery,Html,我在一个页面上有一些输入元素,我正试图根据一对单选按钮的设置来启用或禁用它们。我正在使用下面的Javascript函数(为我添加了控制台日志以查看发生了什么事情) 当单选按钮值更改时,将调用该方法,并且参数具有正确的值,但是标题、姓氏和公司名称输入永远不会被禁用 控制台中的示例如下所示 EnableIndividualOrCompanyControls(false) Title value is Sir Title was false Title is now false 因此,正在调用函数,
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)
我试着用单引号代替双引号,但没有任何区别。的答案解释了您的问题
个人
来自复选框;它是一根绳子。必须将其正确转换为布尔值:
$("#Surname").prop("disabled", (individual == "false" ? false : true));
我建议你建立一个小提琴,因为在我的机器上,你的代码是有效的如果单击“联机访问”复选框,则用户名和密码控件已正确启用/禁用,但如果更改“个人/公司”单选按钮,则标题、名字、姓氏和公司名称控件不会更改。Thx刚刚注意到小提琴中也包含了ArinCool对其中一个控件的建议,但正如您所看到的,这两种方法都不起作用。这太棒了,谢谢。我认为返回的值是布尔值,这就是我感到困惑的原因。现在我意识到它们是简单的字符串,这是有道理的。再次感谢。你能把我的问题投赞成票吗?它收到了-1,但我认为它可以对其他人有用。在我看来,这是一个非常明确和有益的回答。解释一下我讨厌Javascript的一个原因!
<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="" />
$("#Surname").prop("disabled", (individual == "false" ? false : true));