我注意到jQuery Mobile中的禁用和启用比jQuery要多一些。通过浏览我注意到我们需要调用控件类型并禁用它:
$('[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用作包装器,它们都包含禁用的类。
答案 0 :(得分:0)
我无法找到一个完美的解决方案,但如果代码不知道它将启用/禁用哪种控制,这似乎是最好的解决方案(至少我可以提出)。
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', "");
}