Я включил свойство AutoPostBack
в одном из текстовых полей моей формы, которое согласно w3 школам должно вызывать обратную передачу только при нажатии клавиши ввода или ввода.
Я также вызываю __doPostBack()
на pageLoad, учитывая ответ пользователя на приглашение javascript. Когда я это делаю, Request.Form['__EventTarget']
- это не то, что я установил в вызове на __doPostBack
.
Реальная проблема для меня заключается в том, что если я установил для атрибута AutoPostBack TextBox значение false, проблема с вызовом pageload __doPostBack исчезнет. Это не поведение, которое я ожидал. Любые идеи о том, что вызывает проблему? Почему включенный AutoPostBack оказал какое-либо влияние?
Вот часть кода:
asp:TextBox runat="server" ID="userName" OnTextChanged="UpdateTable" AutoPostBack="true"
script type="text/javascript"
//![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]
/script
input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value=""
input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value=""
input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value=""
function jsPrompt(name) {
var ans = confirm('really follow ' + name + '?');
if (ans) {
__doPostBack('follow', name);
}
}
Затем на странице кода:
if (Request.Form["__EventTarget"] == "follow")
followPerson(Request.Form["__EventArgument"]);
Но я все время получаю, что Request.Form["__EventTarget"]
равно ","
, и я прошелся по javascript в отладчике. Непосредственно перед form.submit()
аргументы не ","