无法访问内容页面中的js代码

时间:2014-01-21 12:02:38

标签: asp.net

我使用第一个母版页选择了一个母版页和一个网页表单。
在这个webform中,我拿了文本框和按钮。按钮的OnClientClick属性设置为validate()
我拿了一个JScript.js文件,我编写了以下函数:

function validate() { 
    var no = document.getElementById('<%=TextBox1.ClientID %>').value;
    if (isNaN(no)) {
        alert('not a number.');
    }
}

在default.aspx页面中,我写了文本框,按钮代码如下 function validate() { var no = document.getElementById('<%=TextBox1.ClientID %>').value; if (isNaN(no)) { alert('not a number.'); } }



在母版页的头部我调用js文件如下:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" onclientclick="validate()" Text="Button" />

所以我的问题是,由于我在文本框中写入非数字编号,因此无法显示警报消息。

2 个答案:

答案 0 :(得分:1)

您不能在js文件中使用asp .net绑定语法。

这将在你的js文件中呈现相同,并且不包含你的TextBox1ClientId:

var no = document.getElementById('<%=TextBox1.ClientID %>').value;

将客户端ID从您的aspx页面作为参数传递给validate方法,或者将您的javascript函数嵌入到您的aspx中。

答案 1 :(得分:0)

您可以在控件中添加clientIDMode =“Static”。

<asp:TextBox ID="TextBox1" runat="server" clientIDMode="Static"></asp:TextBox>

<asp:Button ID="Button1" runat="server" clientIDMode="Static" onclick="Button1_Click" onclientclick="validate()" Text="Button" />

或者如果您想使其达到项目级别,只需在Web配置文件中添加该行

即可
<pages clientIDMode="Static"></pages>

<system.web>内。