jQuery Ui Dialog Buttons, How to add class?

前端 未结 5 1441
花落未央
花落未央 2020-12-29 00:53

I found this answer on another thread..

How to add multiple buttons in Jquery UI dialog box?

Using this syntax, how do you add class to a particular button?<

相关标签:
5条回答
  • 2020-12-29 01:36

    Thanks to LintonB, you can add all of the property attached to a button like style, id, etc...

    dialog_options.buttons = {
      'Modify': {
        click: function() {
    
          $(this).dialog('close');
    
          if (inputs.phone !== '') {
            inputs.phone.focus();
            inputs.phone[0].value = "";
          }
        },
        class: 'btn btn-labeled btn-warning',
        style: 'margin-right: 30px;',
        id: 'modificationId'
      },
      'Keep': {
        click: function() {
          $(this).dialog('close');
    
          _this.validatePhone(i);
    
        },
        class: 'btn btn-labeled btn-warning',
        id: 'conserverId'
      }
    };
    
    0 讨论(0)
  • 2020-12-29 01:41

    You Can add class to the button's in Dialog...by

    $('#mydialog').dialog({
      buttons:{
        "send":{
          text:'Send',
          'class':'save'
        },
        "cancel":{
          text:'Cancel',
          'class':'cancel'
        }
      });
    

    I think this will work for you. and you can find more answers here.

    0 讨论(0)
  • 2020-12-29 01:45

    Use the open event handler:

    open: function(event) {
         $('.ui-dialog-buttonpane').find('button:contains("Cancel")').addClass('cancelButton');
     }
    

    Clean, simple, piece of cake!

    0 讨论(0)
  • 2020-12-29 01:47

    It doesn't look like there's a great way to do this via the API, however you could add the classes in an event handler for create:

    $("#dialog").dialog({
        buttons: {
            'Confirm': function() {
                //do something
                $(this).dialog('close');
            },
            'Cancel': function() {
                $(this).dialog('close');
            }
        },
        create:function () {
            $(this).closest(".ui-dialog")
                .find(".ui-button:first") // the first button
                .addClass("custom");
        }
    });
    

    If you wanted the second button, you could use:

    $(this).closest(".ui-dialog").find(".ui-button").eq(1).addClass("custom") // The second button
    

    The key is the $(this).closest(".ui-dialog").find(".ui-button"), which will select the buttons in your dialog. After that, you could apply any selector you want (including :contains(...) which might be useful if you want to select a button based on its text instead of its order).

    Here's an example: http://jsfiddle.net/jjdtG/

    Also note that the CSS selector for the style(s) you want to apply has to be more specific than jQueryUI's built-in selectors in order for the styling to be applied.

    0 讨论(0)
  • 2020-12-29 01:52

    Hope it will help !

    $("#mydialog").dialog({
              buttons: {
                'Confirm': function() {
                   //do something
                   $(this).dialog('close');
                },
                "Cancel": {
                        click: function () {
                            $(this).dialog("close");
                        },
                        text: 'Cancel',
                        class: 'custom-class'
                    }
              }
            });
    
    0 讨论(0)
提交回复
热议问题