2011-02-02 3 views
1

В настоящее время у меня есть небольшая форма, которая использует asp:linkbutton для отправки и отправки электронной почты.ASP.NET & JQuery | Показать jQuery LightBox on Submit

Я хочу вместо этого отобразить лайтбокс с надписью «Спасибо за ваше представление», когда пользователь нажимает на форму, а не на полный пост.

Какое оптимальное решение?

ответ

2

Вам нужно будет перехватить событие, чтобы предотвратить публикацию формы, а затем вызвать ваш лайтбокс. Что-то вроде этого:

$('#yourbutton').bind('click', function() { 
    event.preventDefault(); 
    //do an asynchronous post here 
    $.ajax({ 
     type: 'POST', 
     url: 'http://yoursite.com/yourhandler.ashx', 
     data: {param1:value1,param2:value2}, //if needed 
     success: function(data) { 
     //here you check for the data returned to be valid, not required 
     $('#yourDiv').show(); //show a div here or you can just show a lightbox 
     }, 
     dataType: 'json' 
    }); 

    return false; 
} 

затем на стороне сервера:

обрешетки нового обработчик myHandler.ashx, который будет выглядеть следующим образом:

public class myHandler : IHttpHandler 
    { 

    public void ProcessRequest(HttpContext context) 
    { 
     context.Response.ContentType = "text/plain"; 

     //this is not required if you are not passing any parameters 
     string param1 = context.Request["param1"].ToString(); 
     string param2 = context.Request["param2"].ToString(); 
     string output = ""; 

     //here you would insert your function that would send the email or whatever it is that your function does. 

     //set the output 
     output = "{Success:true"}"; 

     context.Response.Write(output); 

    } 
+0

Воли, что до сих пор поражает 'защищенного недействительного Submit_Click (объект отправителя, EventArgs e) 'в коде для отправки формы? – balexander

+0

нет. Вам нужно будет сделать асинхронный вызов, используя $ .post – Victor

+0

Мячи. Я не знаю, как это сделать, поскольку я всегда использовал панели обновления. Не могли бы вы предоставить какой-то код или ссылку, возможно, чтобы я мог сделать этот метод? – balexander