如何从函数中禁用jQuery对话框中的按钮?

我有一个jQuery对话框,要求用户输入特定的信息。 在这个表格中,我有一个“继续”按钮。 我希望这个“继续”按钮只在所有字段中都有内容时才能启用,否则它将保持禁用状态。

我写了一个函数,每次字段状态改变时都会调用它。 但是,我不知道如何启用和禁用此功能的对话框按钮。 我该怎么办?

哎呀,我忘了提及这些按钮创建如下:

$(function() {
  $("#dialog").dialog({
    bgiframe: true,
    height: 'auto',
    width: 700,
    show: 'clip',
    hide: 'clip',
    modal: true,
    buttons: {
      'Add to request list': function() {
        $(this).dialog('close');
        $('form').submit();
      },
      'Cancel': function() {
        $(this).dialog('close');
      }
    }
  })
});

你会想设置禁用的属性

 $('#continueButton').attr("disabled", true);

更新 :Ahha,我现在看到了复杂性。 jQuery对话框有一行可用(在“按钮”部分下)。

 var buttons = $('.selector').dialog('option', 'buttons');

您需要从对话框中获取按钮集合,循环查找您需要的按钮集合,然后设置如上所示的禁用属性。


这很简单:

$(":button:contains('Authenticate')").prop("disabled", true).addClass("ui-state-disabled");

你完成了一项简单的任务; 出于某种原因,jQueryUI对话框有两种设置按钮的方法。

如果您只需设置每个按钮的单击处理程序,请使用接受Object参数的选项。 要禁用按钮并提供其他属性,请使用带有Array参数的选项。

以下示例将禁用按钮,并通过应用所有jQueryUI CSS类和属性来正确更新其状态。

第1步-与创建对话框Array按钮:

// Create a dialog with two buttons; "Done" and "Cancel".
$(".selector").dialog({ buttons: [
    {
        id: "done"
        text: "Done",
        click: function() { ... }
    },
    {
        id: "cancel"
        text: "Cancel",
        click: function() { ... }
    }
] });

第2步 - 创建对话框后启用/禁用完成按钮:

// Get the dialog buttons.
var dialogButtons = $( ".selector" ).dialog("option", "buttons");

// Find and disable the "Done" button.
$.each(buttons, function (buttonIndex, button) {
    if (button.id === "done") {
        button.disabled = true;
    }
})

// Update the dialog buttons.
$(".selector").dialog("option", "buttons", dialogButtons);
链接地址: http://www.djcxy.com/p/96339.html

上一篇: How can I disable a button in a jQuery dialog from a function?

下一篇: Websocket getting upgrade but no frames from the client