脚本未在FORM元素后执行

时间:2010-10-25 09:37:38

标签: javascript asp.net

我有一个.aspx页面。我在(.cs)页面后面的代码中填充一个公共变量,然后在客户端的JS中访问该变量。我在FORM标记之后声明了脚本,如下所示: -

<body>


<form>
...
</form>
    <script language="javascript" type="text/javascript">
        debugger;
        var data = "<%=cSharpData%>";
    </script>
 </body>

回发后,此脚本不会第一次执行,但是当我单击页面上的任何其他服务器按钮时,它将被执行。 知道为什么吗?

4 个答案:

答案 0 :(得分:0)

你试过用jquery $(document).ready()执行它吗? 类似的东西:

<script language="javascript" type="text/javascript">
$(document).ready(function(){....});
</scrip>

<强>更新 没有jquery

/* registr event on document load */
 if ( document.addEventListener ) {
 document.addEventListener( "DOMContentLoaded", log4link, false );
 } else if ( document ) {
 document.attachEvent("onreadystatechange",function(){
         if ( document.readyState === "complete" ) {log4link();}
 });}

答案 1 :(得分:0)

你的回发是用ajax完成的吗?

如果是这样,那么只刷新部分页面并且不再执行脚本。

您可以将其包装在函数中,并将该函数添加到回发回调处理程序。

这就是我在一个网站上的表现:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () { edit.update(); });

答案 2 :(得分:0)

<FORM>元素之后放置一些Javascript并不意味着在提交表单后它将被处理。它会在呈现HTML时得到处理,这就是您所看到的。

如果你想在POST一个表单后运行一些Javascript,那么你需要使用一个onClick处理程序,如下所示:

<FORM NAME="myform" ACTION="" METHOD="GET">
<INPUT TYPE="text" NAME="inputbox" VALUE=""><P>
<INPUT TYPE="button" NAME="button" Value="Click" onClick="dosomejavascriptstuff()">
</FORM>

答案 3 :(得分:0)

感谢您的回复。我接近这个问题,但我不知道解决方案:( C#变量包含路径信息“D:\”,当我在JS变量上设置它时,我得到的错误是“未终止的字符串常量”。 我该如何克服这一点。

实际上这就是问题,为什么剧本没有被执行。一旦我删除了“\”,它就有效了!