2013-06-24 3 views
0

Я хочу вызвать отображение формы jQuery, когда пользователь нажимает кнопку на стороне сервера ASP.NET.onClientClick не работает при вызове функции jQuery

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

Эффект Я пытаюсь создать можно увидеть здесь: JSFiddle

в основном я хочу, чтобы открыть такое же диалоговое окно, когда кто-то нажимает на кнопку ASP.NET ..

Это мой код:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> 

<asp:Button ID="createuser" runat="server" Text="Button" OnClientClick='$("#dialogform").dialog("open");'/> 


<script type="text/javascript"> 

$(function() { 

    $("#dialogform").dialog({ 
     autoOpen: false, 
     height: 300, 
     width: 450, 
     modal: true, 
     buttons: { 
     "Create an account": function() { 
      alert('Hello'); 
     }, 
     Cancel: function() { 
      $(this).dialog("close"); 
     } 
     }, 
     close: function() { 
     $(this).dialog("close"); 
     } 
    }); 
    }); 

</script> 

Я также попытался использовать jQuery вместо идентификатора $ для вызова функций jQuery. И я также пытался удалить onClientClick событие, и пытались использовать этот код вместо этого блока сценария выше:

<script type="text/javascript"> 

$(function() { 

    $("#dialogform").dialog({ 
     autoOpen: false, 
     height: 300, 
     width: 450, 
     modal: true, 
     buttons: { 
     "Create an account": function() { 
      alert('Hello'); 
     }, 
     Cancel: function() { 
      $(this).dialog("close"); 
     } 
     }, 
     close: function() { 
     $(this).dialog("close"); 
     } 
    }); 

    $("#createuser") 
     .button() 
     .click(function() { 
     $("#dialogform").dialog("open"); 
     }); 
    }); 

</script> 

Можно ли определить, что это проблема?

+0

Открывает ли это диалог или нет? что он дает? Вы проверили консоль браузера? –

+0

Не открывает диалоговое окно .. Только перезагружает страницу очень быстро .. – Ahmad

ответ

1

Вместо использования

<asp:Button ID="createuser" runat="server" Text="Button" OnClientClick='$("#dialogform").dialog("open");'/> 

попробуйте использовать

<input type='button' value="Button" onclick='$("#dialogform").dialog("open");' /> 
+0

Не работает. Сначала я дал ошибку на символ '' '. Когда я переключился на' jQuery', он начал давать мне ') ожидаемый'' ошибка .. И я проверил .. нет отсутствующей скобки. Кроме того, 'OnClick' используется только для серверных функций, я думаю .. – Ahmad

0

Попробуйте с этим:

Если вы имеете в виду непосредственно к элементу управления на стороне сервера, ClientID должен включая любые Информация NamingContainer (от чего-то вроде GridView или Repeater или где-нибудь еще). Узнайте, что идентификатор клиента элемента управления использует инструменты разработчика вашего браузера (у IE есть инструменты для разработчиков, Firebug для Firefox и т. Д.), А затем отлаживается JavaScript.

function DoStuff() { 
    $("#dialogform").dialog("open"); 
    return false; 
}); 


<asp:LinkButton id="createuser" OnClientClick="DoStuff();" runat="server"> 
+0

Не очень нужно, хотя, поскольку я использую' onClientClick' на сервере -side, чтобы вызвать функцию JavaScript на стороне клиента. Не наоборот. – Ahmad

+0

Затем какую функцию вы вызываете 'onclientClick()'? –

+0

Yup, я использую 'onClientClick' для вызова функции JavaScript .. Это также видно из моего кода. – Ahmad

0

Ваша кнопка, скорее всего, размещение обратно на сервер, и вам необходимо, чтобы предотвратить это, как это:

<asp:Button ID="createuser" runat="server" Text="Button" OnClientClick='$("#dialogform").dialog("open"); return false;'/> 

Если HTML вход упоминалось выше, Swapnil бросает ошибку на «$ ', то это звучит так, как jQuery либо не загружен, либо' $ 'был захвачен чем-то другим. Я бы использовал инструменты разработчика вашего браузера, чтобы узнать, загружается ли jQuery. В IE сделайте F12, перейдите на вкладку «Сеть», нажмите кнопку «Начать захват», обновите страницу, а затем проверьте строку с помощью jQuery.