使用 dojo 工具包启用/禁用按钮

Posted

技术标签:

【中文标题】使用 dojo 工具包启用/禁用按钮【英文标题】:Enable/Disable a button using dojo toolkit 【发布时间】:2015-10-30 21:37:01 【问题描述】:

我在 html 中声明了一个按钮,我想使用 javascript 和 Dojo 工具包动态启用/禁用它。

我编写了以下代码,这应该是一个最小的工作示例:

<html>
<head>
<script language="JavaScript" type="text/javascript">
require(["dojo/dom", "dojo/on", "dojo/request", "dojo/domReady!"],
        function(dom, on, request)
            on(dom.byId("password"), "keyup", function(evt)
                request.get("/PasswordChecker",
                        
                            query: 
                                user: document.getElementById("username").value,
                                pass: document.getElementById("password").value
                            
                        ).then(
                    function(response)
                        if(strength === "STRONG") 
                            dijit.byId("ok").setAttribute('disabled',false);
                        
                    
                );
            );
        
    );
</script>
</head>

<body>
<input id="username" type="text"/>
<input id="password" type="text"/>
<button id="ok" dojoType="dijit.form.Button" type="submit" disabled="disabled">OK</button>
</body>
</html>

换句话说,我希望用户输入密码。然后我将使用 ajax 来检查它是否足够强大,如果是,我想启用 OK 按钮。

【问题讨论】:

为什么不使用简单的 CSS? Click dijit.byId('ok').setAttribute('disabled', 'disabled'); 【参考方案1】:

我将代码改写如下:

function updateOkButton(strength) 
    if(strength === "STRONG") 
    //  domAttr.set(okButton, 'disabled', false);
        require(['dojo/on', 'dojo/dom', 'dojo/dom-attr'],
        function (on, dom, domAttr) 
            var okButton = dom.byId("ok");
            domAttr.set(okButton, 'disabled', false);
        );
    

【讨论】:

更“道场”的做法是: var okButton = registry.byId("ok"); okButton.set("禁用", true);这不仅设置了属性,而且还为您在小部件级别执行了更多操作。

以上是关于使用 dojo 工具包启用/禁用按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在Eclipse插件开发中禁用/启用视图工具栏菜单/操作

在 ExtJS 中,如何禁用悬停在禁用工具栏按钮上的样式更改?

如何启用禁用的按钮

更新工具栏按钮状态 MFC

Dojo:如何设置禁用新按钮

iOS:防止通过禁用的工具栏按钮点击