HTML属性比较

时间:2011-08-23 02:27:24

标签: javascript html dojo

您如何在dojo中编写if条件检查?

if(!dojo.query("#idOfHhtmlField").attr("disabled") == true)
    { 
      //do something
    } 

在这里,我试图比较#idOfHhtmlField的禁用属性是否设置为true,但它似乎并不适用于我。

3 个答案:

答案 0 :(得分:0)

if(!dojo.query("#idOfHhtmlField").disabled) {
    ...
}

答案 1 :(得分:0)

我在dojo中测试了这个html,here

<button id="test0" disabled>button0</button>
<button id="test1" disabled="disabled">button1</button>
<button id="test2" disabled="false">button2</button>
<div id="test3" disabled>div0</div>
<div id="test4" disabled="disabled">div1</div>
<div id="test5" disabled="false">div2</div>

因为你可以在ie8中设置div的禁用,所以它返回全部为true。 但在chrome中只有按钮返回true。 你应该检查#idOfHhtmlField是否是一个表单元素。

更新

我建议您以这种方式检测到禁用,因为浏览器不需要它的值:

if(dojo.hasAttr("id",'disabled')){
        //alert(123)
}

我对dojo知之甚少,因为dojo.query()。attr()返回一个对象,它是经过的! here是官方指南。

答案 2 :(得分:0)

idOfHhtmlField是一个DOM元素(div,span,input等)?或者它是一个dijit小部件?

如果是DOM节点,您可能需要使用:

var field = dojo.byId('idOfHtmlField');
console.log(field.disabled);

如果您正在使用某种类型的dijit小部件(程序化实例化或通过dojoType或data-dojo类型声明),您将需要使用:

var fieldWidget = dijit.byId('idOfHtmlField');
var isDisabled = fieldWidget.get('disabled');
console.log(isDisabled);