2013-07-12 4 views
0

Может кто-нибудь помочь мне скрыть/отключить кнопку в диалоговом окне jQuery?Как скрыть кнопку диалога jquery при загрузке диалога?

Сценарий: при нажатии кнопки Я открываю диалоговое окно с кнопкой «Добавить» и «Обновить». Внутри диалога у меня есть текстовое поле, содержащее дату и сообщение. Оба будут заполнять данные, если данные уже присутствуют в базе данных, иначе они будут пустыми, что позволит пользователю добавлять данные.

Теперь, если текстовое поле содержит предварительно заполненные данные (сообщение существует в db), я должен скрыть кнопку добавления, поскольку пользователь может только обновить сообщение. Я пробовал несколько трюков, которые я получил из stackoverflow, но ни один из них не работает как Я открываю диалоговое окно при нажатии кнопки, поэтому я думаю, что я создаю кнопку динамически, и я не могу скрыть их на лету.

Я также попытался дать идентификатор кнопке диалога и скрыть/отключить его, используя код ниже: $ ('# id'). Hide(); $ ('# id'). Attr ('disabled', 'disabled');

Я заглянул в нижеприведенную скрипку, которая именно то, что я хочу, но если я улажу это, то мне придется много менять код. Поэтому было интересно, сможет ли кто-нибудь предоставить мне легкое решение.

[http://jsfiddle.net/kkh2a/1/]

Спасибо заранее.

$('#dialog-form').dialog({width:350,height:300, 
    resizable:false, 
    modal:true, 
    closeOnEscape: true, 
    draggable:false, 
    show:{effect:"fade"}, 
    buttons:{ 
     Add:{ 
      text:'Add', 
      id:'AddMsg', 
      click:function(){ 

     }}, 
     Update:function(){ 
      }, 
     Cancel:function(){ 
      $(this).dialog("close"); 
     } 
    }}); 
+2

«Я посмотрел в ниже скрипку, которая является именно то, что я хочу, но если я принять это, то я должен сделать много изменений коды «. ... Ну, если вы * покажете нам код *, мы можем помочь. – RobH

+0

Robh, я добавил код. Я вызываю это диалоговое окно внутри функции. – PanwarS87

ответ

0

Попробуйте это:

$('#dialog-form').dialog({ 
    ... 
    buttons : {...}, 
    open : function() { 
     $('#dialog-form') 
      .dialog('widget') 
      .find('div.ui-dialog-buttonpane div.ui-dialog-buttonset button') 
       .eq(0) 
       .button('disable'); 
    } 
}); 
+0

Спасибо Derek, я немного изменился, и он сработал. Я не знал об открытии диалога. – PanwarS87

+0

Внутри открытого я просто спрячу кнопку, если текст присутствует в текстовом поле сообщения .... – PanwarS87

+0

no prob. вы можете определить открытые и закрытые функции для диалоговых окон. проверьте api.jqueryui.com/dialog для получения более подробной информации. – Derek

0

Hy все, я использую этот путь:

$("#myDivForLoadingDialog").dialog({ 
    modal: true, 
    resizable: false, 
    height: "auto", 
    draggable: false, 
    closeOnEscape: false, 
    open: function (event, ui) { 
     $("#myDivForLoadingDialog").prev().hide(); 
    } 
}) 

без кнопки настройки в опции не показывать любую кнопку внутри

set closeOnEscape: false, чтобы ваше сообщение загрузки не было закрыто кнопкой «esc»

в opencallback скрыть все поле заголовка (и кнопка закрытия внутри).

Я предпочитаю избегать перетаскивания, изменения размера и всех функций, не требующихся при загрузке сообщения.

работает с JQuery 1.11.1 (и, возможно, со всей предыдущей версией)

Смежные вопросы