0 голосов
спросил от в категории ASPNETC5
Проблема заключается в том, что вы отправляете форму перед завершение вызова AJAX. Вам нужно задержать отправку формы до тех пор, пока не будет вызвана функция callback .

Что-то вроде этого может работать:
var submitFromCode = false; function GetDistance(){     // If the button was triggered by the "callback" function, submit the form:     if (submitFromCode) { return true; }     var origin = document.getElementById("orig").value,         destination = document.getElementById("dest").value,         service = new google.maps.DistanceMatrixService();     service.getDistanceMatrix(         {             origins: [origin],             destinations: [destination],             travelMode: google.maps.TravelMode.DRIVING,             avoidHighways: false,             avoidTolls: false         },         function(response, status) {             var orig = document.getElementById("orig"),                 dest = document.getElementById("dest"),                 dist = document.getElementById("dist");             if (status == "OK") {                 orig.value = response.originAddresses[0];                 dest.value = response.destinationAddresses[0];                 dist.value = response.rows[0].elements[0].distance.text;                 document.getElementById('<%=hdnResultValue.ClientID%>').value = dist.value;                 // Submit the form:                 submitFromCode = true;                 document.getElementById('<%=btnSubmit.ClientID%>').click();             } else {                 alert("Error: " + status);             }         });     // Prevent the form from being submitted until the "callback" function is called:     return false; }

Пожалуйста, войдите или зарегистрируйтесь чтобы ответить на этот вопрос.

0 голосов
ответил от
попробуйте получить его непосредственно из формы:


<input type="hidden" id="hdnResultValue" name="hdnResultValue" value="" />

String test = Request.Form["hdnResultValue"];



UPDATE: протестированная версия:

Page1.aspx:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">     <title></title>     <script type="text/javascript" >         function btnClick() {             document.getElementById("hdnHidden").value = "test";         }     </script> </head> <body>     <form id="form1" runat="server">         <input type="hidden" id="hdnHidden" name="myHidden" />         <button type="button" id="btnButton" name="myButton" onclick="btnClick();" >btnClick</button>         <button type="submit">submit</button>     </form> </body> </html>


Page1.aspx.cs:
using System; namespace WebTests {     public partial class Page1 : System.Web.UI.Page     {         protected void Page_Load(object sender, EventArgs e)         {             string test = Request.Form["myHidden"];         }         protected override void OnLoad(EventArgs e)         {             base.OnLoad(e);             string test = Request.Form["myHidden"];         }     } }


На странице есть две кнопки. «btnClick» запускает javascript, который изменяет значение скрытых полей. «submit» отправляет форму, содержащую скрытое поле.
В обоих методах загрузки страницы значение «string test» равно «test»

Возьмите посмотрите на mu-код, сравните его с вашим и попробуйте посмотреть, что другое, т. е. является hdnResultValue в представленной форме?

Категории

Добро пожаловать на сайт DraftingCode Q&A, где вы можете задавать вопросы и получать ответы от других членов сообщества.

Связанных вопросов не найдено

...