Привет, ребята, и спасибо за вашу помощь, как всегда.
Я застрял в Asp.NET 2.0 и пытаюсь выполнить отправку формы с использованием библиотеки jquery.
Пока что я получил эффект без обновления, используя метод jquery post:
<script type="text/javascript">
$(document).ready(function()
{
$("#btnGuardar").click(function()
{
//post
$.post("contacto.aspx", { txtRaz: $("#txtRaz").val(),
txtDir: $("#txtDir").val(),
txtEmail: $("#txtEmail").val(),
txtTel: $("#txtTel").val(),
txtConsulta: $("#txtConsulta").val() },
function (response) {
r=response+'';
var f=$('#pEnvioCorreo');
if (r == '0'){
f.css("display",'block');
}
else if (r == '1'){
f.css("display",'block');
f.innerHTML='Error en el envio';
}
else {
f.innerHTML='Verifique los campos obligatorios';
}
});
return false;
//post
})//click
});//ready
</script>
Когда выполняется отправка, я затем ловлю поля формы в событии Load (No IsPostback Veryfing) страницы и записываю вывод в соответствии с ответом, заканчиваю его и затем ловлю значение, чтобы разрешить одно или другое случиться на клиенте.
Моя попытка использовать метод ajax выглядит следующим образом:
//metodo 2
$.ajax({
type: "POST",
url: "contacto.aspx",
contentType: "application/json; charset=utf-8",
data: {
txtRaz: $("#txtRaz").val(),
txtDir: $("#txtDir").val(),
txtEmail: $("#txtEmail").val(),
txtTel: $("#txtTel").val(),
txtConsulta: $("#txtConsulta").val()
},
dataType: "json",
success: function(response) {
r=response+'';
var f=$('#pEnvioCorreo');
if (r == '0'){
f.css("display",'block');
}
else if (r == '1'){
f.css("display",'block');
f.innerHTML='Error en el envio';
}
else {
f.innerHTML='Verifique los campos obligatorios';
}
}
});
//fin metodo 2
Это не работает, так как я отправляю свою форму, обновляя всю страницу, а это не то, что я хочу.
Не могли бы вы дать мне понимание этого? и / или есть ли лучший способ сделать это?.
Спасибо за вашу помощь.
Я заставил это работать, и я отправляю это для будущей ссылки:
Метод $ .post работает, как я объяснил выше.
Метод $ .ajax у меня не работал, потому что у меня неверный параметр данных.
Два способа сделать это правильно:
1) Установка правильного синтаксиса для параметра данных, обратите внимание на следующий формат для данных
data:"{'hdT': '" + $("#hdT").val() + "','txtRaz': '" + $("#txtRaz").val() + "','txtEmail': '" + $("#txtEmail").val() + "','txtTel': '" + $("#txtTel").val() + "','txtConsulta': '" + $("#txtConsulta").val() + "'}"
2) Использование плагина JSON для преобразования данных data: параметров в формат JSON:
var thing={hdT: $("#hdT").val(),txtRaz: $("#txtRaz").val(),txtEmail: $("#txtEmail").val(),txtTel: $("#txtTel").val(),txtConsulta: $("#txtConsulta").val()};
И данные должны передаваться для параметра следующим образом:
data: $.toJSON(thing)
Как только это будет сделано, PageMethod должен быть установлен в коде, и ссылка ScriptManager не требуется, потому что jquery обрабатывает весь процесс.
Для передачи информации, поступающей из объекта данных в PageMethod, каждое свойство должно быть параметром метода.
<WebMethod()> _
Public Shared Function ProcesaEnvio(ByVal txtRaz As String) As String
Return "Returns:" & txtRaz
End Function
Как только там будет достигнут необходимый процесс.