我已经启用了AutoPostBack
我的表单文本框之一的属性,根据w3 学校的说法,它应该只在我按 enter 或 tab 时触发回发。
__doPostBack()
鉴于用户对 javascript 提示的回答,我还调用了on pageLoad。当我这样做时,这Request.Form['__EventTarget']
不是我在调用中设置的__doPostBack
。
对我来说真正的问题是,如果我将 TextBox 的 AutoPostBack 属性设置为 false,页面加载 __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()
,争论不是","