2015-01-24 3 views
0

im Использование asp.net формы на этой странице im работает над имеет masterpage, он отлично работает, когда autoopen является ложным, но когда autofalse истинно, я не знаю, почему это doesnt Работа. код ..Диалоговое окно jquery ui не открывается при нажатии кнопки, когда autoopen установлен на false

$(document).ready(function() { 

     $("#dialog").dialog({ 
      autoOpen: false, 
      appendTo: "form", 

      show: { 
       effect: "fade", 
       duration: 1000 
      }, 
          hide: { 
       effect: "explode", 
       duration: 1000 
      }, 

      buttons: { 
       Ok: function() { 
        $("[id*=btnmsgOk]").click(); 
        $(this).dialog("close"); 
       }, 
       Cancel: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

}); 

и я называю эту функцию этим ..

$('<%=btnSave.ClientID %>').click(function() { 
      $("#dialog").dialog("open"); 
      }); 

но доцент работу.

+0

Вы пытались поместить эту функцию в '$ ('<% = btnSave.ClientID%>'). Click (function() { $ (" # dialog "). Dialog (" open "); }); 'inside' $ (document) .ready() '? –

+0

Да в пробовал, но это не работает. –

ответ

0

Я пробовал следующее, работает нормально. Обратите внимание, что вы пропустили ставить # в селектор jquery. Он должен быть $('#<%=btnSave.ClientID %>').click...

$(document).ready(function() { 
 

 
    $("#dialog").dialog({ 
 
    autoOpen: false, 
 
    appendTo: "form", 
 

 
    show: { 
 
     effect: "fade", 
 
     duration: 1000 
 
    }, 
 
    hide: { 
 
     effect: "explode", 
 
     duration: 1000 
 
    }, 
 

 
    buttons: { 
 
     Ok: function() { 
 
     $("[id*=btnmsgOk]").click(); 
 
     $(this).dialog("close"); 
 
     }, 
 
     Cancel: function() { 
 
     $(this).dialog("close"); 
 
     } 
 
    } 
 
    }); 
 

 
}); 
 
$("#clicktoopen").click(function() { 
 
    $('#dialog').dialog('open'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js"></script> 
 
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/themes/humanity/jquery-ui.css" type="text/css" /> 
 
<div id="dialog">DIV</div> 
 
<button id="btnmsgOk" value="btn" style="display:none">Ok</button> 
 
<button id="clicktoopen" value="click">Click</button>

+0

Я вставил ваш код, и он запускался только один раз по неизвестной причине. Я поставил # селектор, как вы предложили. –

+0

Я только что протестировал его с помощью щелчка div, но он работал, но он не работает с нажатием кнопки asp.net. –

+0

@BRBHARDWAJ Вы пробовали '$ ('# <% = btnSave.ClientID%>')'? Если да, вставьте ошибку, которую вы получили в консоли браузера. –

0

Важной вещью, которую вы должны знать при использовании Jquery является PostBack свойства Когда постбэк occurse JQuery кода будет получать исходные значения .. Таким образом, вы должны предотвратить постбэк, чтобы увидеть его функциональность.

e.preventDefaults();

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