如果对话框为空,如何禁用按钮

时间:2014-12-18 19:11:29

标签: javascript jquery handlebars.js

如果标识为#createEditListCloseBtn的对话框为空,如何禁用标识为#acronyms的按钮? 我尝试过以下方法:

 if($("#acronyms").children("option:selected").length < 1)
 {
    $("#createEditListSaveBtn").addClass("state-btn-disabled")
                               .attr("disabled", "disabled"); 
 }

2 个答案:

答案 0 :(得分:3)

您可以使用:

$("#submit").prop("disabled", true);
setInterval(function () {
    if ($("#username").val().length >= 1 && $("#password").val().length >= 1) {
        $("#submit").prop("disabled", false);
    } else {
        $("#submit").prop("disabled", true);
    }
}, 100);

它检查两个字段的值是否等于或大于&#34; 1&#34;如果是这样,它会启用提交按钮。

FIDDLE HERE:http://jsfiddle.net/nn8s2e8h/

答案 1 :(得分:0)

如果问题是你的函数只在页面加载时运行一次,那么你需要的是一个事件处理程序:

function updateDisabledStatus() {
    if($("#acronyms").children("option:selected").length < 1)
    {
       $("#createEditListSaveBtn").addClass("state-btn-disabled")
                                  .attr("disabled", "disabled");
    } else {
       $("#createEditListSaveBtn").removeClass("state-btn-disabled")
                                  .removeAttr("disabled");
    }
}
updateDisabledStatus();
$("#acronyms").on('change', updateDisabledStatus);

与队长theo的回答不同,这并不会浪费用户的处理能力,每秒10次检查状态。

顺便说一下,你真的需要一个CSS类一个禁用的属性吗?