繁体   English   中英

JQuery Mobile禁用/启用控件

[英]JQuery Mobile Disable/Enable Controls

我已经注意到,与jQuery相比,禁用和启用jQuery Mobile涉及更多。 通过浏览,我注意到我们需要调用控件类型并禁用它:

$('[type="submit"]').button('enable');

问题是这对我不起作用。 我有许多不同类型的控件,但并不是所有人都支持jQuery Mobile方法(例如select-one似乎没有任何方法)。

我目前正在尝试执行以下操作:

function DisableControlMobile(control, disabled) {
    if(control){
        var type = control.type;
        //Ugly, but we need to get the id string so we can build the jQuery call, as the methods used will throw errors if we do not do this
        var id = control.id;
        console.log(type + " " + id + " " + disabled);
        if (disabled) {
            $('#' + id).attr('disabled', 'disabled');
            $('#' + id).addClass('ui-disabled'); 
            $('#' + id).addClass('ui-state-disabled');
        } else {
            $('#' + id).removeClass('ui-disabled');
            $('#' + id).removeClass('ui-state-disabled');
            $('#' + id).removeAttr('disabled');
        }
}

我所有的物品都是asp物品。 例:

<asp:TextBox ID="ArrivalTimeTextBox" runat="server" CssClass="time_textbox" data-clear-btn="true"></asp:TextBox>

似乎add和remove类调用没有任何作用,因为有大量的div用作包装器,它们也都包含禁用的类。

我无法找到完美的解决方案,但是如果代码不知道它将启用/禁用哪种控件,这似乎是最好的解决方案(至少我可以提出)。

    if (disabled) {
        $('#' + id).parent().addClass('ui-disabled');
        $('#' + id).parent().addClass('ui-state-disabled');
        $('#' + id).attr('disabled', 'disabled');
        $('#' + id).addClass('ui-disabled'); 
        $('#' + id).addClass('ui-state-disabled');
    } else {
        $('#' + id).parent().removeClass('ui-disabled');
        $('#' + id).parent().removeClass('ui-state-disabled');
        $('#' + id).removeClass('ui-disabled');
        $('#' + id).removeClass('ui-state-disabled');
        $('#' + id).attr('disabled', "");
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM