2012-05-11 4 views
1

Я использую диалог jquery, когда пользователь нажимает ok, событие onclick на стороне сервера должно быть запущено, если нажать «Отмена», ничего не произошло.jquery button trigger server side onclick event

Я должен предотвратить функцию щелчка в начале функцией preventDefault().

$(document).ready(function() { 
     $("#<%=submit.ClientID %>").click(function (event) { 
      event.preventDefault(); 
       $("#confirm").dialog({ 
        buttons: { 
         "OK": function() { $(this).dialog("close"); 
           Here should be the code to trigger the server side click event 


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

Я не знаю, как инициировать событие onclick на стороне сервера. есть идеи? спасибо

+0

Единственный способ сделать что-либо на стороне сервера из javascript - либо отправить запрос ajax, либо отправить форму либо через текущую страницу, либо в iframe. Как вы можете иметь событие click на стороне сервера? GUI не существует на стороне сервера. –

+0

@KevinB Я новичок в jquery. как я знаю, кнопка asp.net имеет событие onclick и событие onclientclick, событие onclick находится на стороне сервера, я хочу запустить это событие, когда пользователь нажимает «ok» – pita

+0

Помог ли вам один из ответов? Если да, отметьте ответ или сообщите об этом. – lucuma

ответ

0

Поместите event.preventDefault() в часть отмены или какое-то условие для нее, чтобы она не срабатывала при каждом нажатии.

0

Я думаю, вы сбиваете с толку между сервером и сторонами клиента. , если вы хотите инициировать событие на стороне сервера, вам необходимо уведомить его (может быть сделано путем ajax-вызова). событие клика - это событие на стороне клиента, которое ничего не сделает на стороне сервера. попробуйте добавить код под функцию «ОК», чтобы уведомить сервер, как вам угодно, с помощью вызова ajax.

в любом случае вы должны переместить вызов event.preventDefault() в функцию «Отмена».

изменить: другой способ приблизиться к нему - это предотвратить подачу, если вы этого не хотите. в вашем виде тега добавить onsubmit="foo()" и определить:

function foo(){ 
    //call your dialog and return true to continue the submit and false to cancel. 
} 
+0

, если я переместю event.preventDefault() в функцию «отменить», код на стороне сервера будет запускаться при нажатии кнопки «отправить», прежде чем пользователь нажимает «ok» на всплывающем диалоговом окне – pita

+0

, поэтому, если вы не хотите создайте отправку, которую вы должны поместить в начале (как и вы), и вызовите $ ("# your_form_id"). submit() вручную на "OK" или вместо этого создайте вызов ajax. –

+0

, это моя проблема, я пытался использовать $ ("# your_form_id"). Submit(), которая не срабатывала для функции submit_onClick() на стороне сервера, и я не знаю, как использовать ajax, не могли бы вы дать мне пример? – pita

0

Это выглядит немного зависит от деталей реализации (даже если они настолько широко, что они не будут изменены), но код это:

__doPostBack('submit','OnClick'); 

Это будет выполнять обработчик события OnClick для управления с именем submit. В качестве ссылки взгляните на этот небольшой учебник о how postbacks works in ASP.NET.

+0

@Pita Я помню некоторые проблемы (с некоторыми некоторыми браузерами), связанные с кнопками с идентификатором «submit». Я не уверен, что любая информация будет приветствоваться. Во всяком случае, это должно быть работа (я тоже использую его), но вы, _may_, должны переименовать свою кнопку в другое. –