js和asp的button触发相同js函数但结果不同

来源:百度知道 编辑:UC知道 时间:2024/06/16 13:35:46
请问下用
<input type=button value="Next" id="Text2" onclick="frt()"/>这个触发的函数
function frt()
{
// $("#text1").value="sdgfdgd";
document.getElementById('text1').value="asfsdf";
var ts='<%=cc() %>';

}
为什么不能执行 var ts='<%=cc() %>';这句?
而用asp的button触发这个函数却可以执行 var ts='<%=cc() %>';这句?

要解释这个道理,你必须首先把js和ASP的运行位置搞清楚.
asp代码是在服务器上执行,然后将执行结果发送到客户端,注意是将执行结果发送到客户端
js是在客户端运行的.

知道上面两点后,你就会发现onclick="frt()"是在客户端运行frt()函数,并不把信息送回服务器去处理,自然<%=cc()%>这句asp代码得不到结果.就是能得到结果,也是第一次打开网页时服务器送来的结果,并非是在你onclick时产生的.

而用ASP的button触发这个函数是要先从客户端向服务器端发送信息,后从服务器端运行cc()并将结果回送到客户端,自然就会有结果了.

这两种处理方法你可以从浏览器是不是刷新来体会一下,第一种方法,浏览器是不会刷新的,而第二方法浏览器会刷新一下.

1楼说的很对,
不过你可以试试,将代码改为
<input type=button value="Next" runat="server" id="Text2" onclick="frt()"/>
将你的button变为服务器控件。

因为你用js触发
cc() 的后台代码是没有执行到的
所以没值