asp.net jquery有关问题
asp.net jquery问题html xmlnshttp://www.w3.org/1999/xhtmlhead runatservertitle/titles
asp.net jquery问题
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
<script>
function aa() {
$.post("Handler1.ashx", {}, function (date) {
$("#st").val('1');
});
alert($("#st").val());
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<a onclick="aa();">adsfasf</a>
<input runat="server" type="hidden" id="st" />
</div>
<asp:Button ID="Button1" runat="server" OnClientClick="aa();" Text="Button" />
</form>
</body>
</html>alert($("#st").val());第一次alert为空,第二次才有值,什么情况,怎么解决呢?
[解决办法] function aa() {
$.post("Handler1.ashx", {}, function (date) {
$("#st").val('1');
});
alert($("#st").val());
}
=>
function aa() {
$.post("Handler1.ashx", {}, function (date) {
$("#st").val('1');
alert($("#st").val());
});
}
[解决办法]
+1
[解决办法]guwei4037正解
因为POST是异步的(ajax的第一个a就是异步(async)的意思)
所以,POST还没有返回就执行到你的alert了。
[解决办法]异步执行啦~~~
[解决办法]楼主可以结贴了···
[解决办法]jquery ajax 默认情况下异步
[解决办法]function aa() {
var St_val;
$.post("Handler1.ashx", {}, function (date) {
St_val= $("#st").val('1');
});
alert(St_val);
}
这样应该有值把。
[解决办法]这样我猜没有。
[解决办法]我这有个说法 在head中的<script> 标签 与<body>标签 加载的时间上有差异 导致JS代码运行的时候 html还没有加载 so 找不到