我正在使用 ASP.NET 将值传递给 JavaScript 函数,并且由于某种原因我无法确定,当我尝试从另一个控件传递值时它不起作用。相反,它就像存在语法错误一样,只是提交回主表单。
有谁知道为什么?
例子:
<asp:TextBox ID="txtToSay" runat="server" Text="Something"></asp:TextBox>
<asp:Button runat="server" ID="btnSaySomething1" Text="Say Something"
OnClientClick="saySomething(<%=txtToSay.Text%>);" /> <!-- doesn't work -->
<asp:Button runat="server" ID="btnSaySomething1" Text="Say Something"
OnClientClick="saySomething('<%=txtToSay.Text%>');" /> <!-- doesn't work -->
<asp:Button runat="server" ID="btnSaySomething2" Text="Say Something"
OnClientClick="saySomething('Something');" /> <!-- works -->
<script type="text/javascript">
function saySomething(txt){
alert(txt);
};
</script>
附加信息:
在 .NET 4.0 上运行的 Web 应用程序语言:C#
更新:
在处理了一段时间后,我确定您不能<%%>
在 ASP 控件中使用标记。此外,如果您正在寻找控制值的动态评估 AVOID AVOID AVOID using<%=someControl.Text%>
或类似的构造,因为它们仅在将请求提交到服务器后才被评估。如果您在运行时需要来自另一个控件的静态值,只需在页面加载事件中设置该值或在后面的代码中以另一种方式处理它。