2011-09-07 41 views
0

我在确定输入字段的状态时遇到问题。我希望JS确定它是否被禁用或启用,但我的代码总是返回'false'。我究竟做错了什么?由于确定输入元素状态

<input name="ctl00$ctl00$ctl00$ctl00$ContentPlaceHolderDefault$RobinBodyPlaceHolder $LoggedInBodyPlaceHolder$AddEditUser1$EmailTextBox" type="text" value="[email protected]" id="ContentPlaceHolderDefault_RobinBodyPlaceHolder_LoggedInBodyPlaceHolder_AddEditUser1_EmailTextBox" class="EmailTextBox" disabled="disabled"/> 


function ConfirmEmailChange() { 
    alert($('.EmailTextBox').disabled==true); 
} 

回答

0

你试图访问一个jQuery对象的disabled属性(我假设这是jQuery的,但它可以使用$字符是一些其他JS库),但jQuery的对象没有一个disabled财产。

如果是jQuery的,可以访问使用数组符号jQuery对象内包含的实际DOM节点:

alert($('.EmailTextBox')[0].disabled); 

或者,也可以使用get方法:

alert($('.EmailTextBox').get(0).disabled); 

或者,正如其他人所示,您可以使用jQuery prop方法。请注意,我删除了== true部分,因为disabled是一个布尔属性,无论如何将返回truefalse

+0

哎呀,是的,它是jQuery。谢谢 – lekso

+0

在这种情况下,您可以使用这些答案中给出的任何方法!为了清晰起见,我已将jQuery标签添加到您的问题中。 –

0

问题不在于标签的jQuery,但因为你似乎可以用它,你可以这样做:

alert($('.EmailTextBox').is(':disabled')) 
0

Live Demo

function ConfirmEmailChange() { 
    alert($('.EmailTextBox').prop('disabled')); 
} 

只要改变它以这种方式检查禁用的财产。您试图访问.disabled,这不是有效的jQuery属性。