user3216114
user3216114

Reputation: 325

cannot access js code in content page

I took one masterpage and one web form selected with the first master page.
In this webform i took textbox and button. Button's OnClientClick property set with validate()
I took one JScript.js file in that i write the following function :

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

In default.aspx page i write the textbox and button code is as following

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


In master page's head section i call the js file as following :
<script src="JScript.js" type="text/javascript">
</script>

So the my question is this is not worked the alert message not appears as i write non numeric number in textbox.

Upvotes: 0

Views: 215

Answers (2)

akeeseth
akeeseth

Reputation: 845

You can add clientIDMode="Static" in your control.

<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" />

Or if you want to make it project level, just add the line in web config file

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

inside <system.web>.

Upvotes: 0

Tamim Al Manaseer
Tamim Al Manaseer

Reputation: 3724

You can't use asp .net binding syntax in js files.

this will be rendered the same in your js file, and will not contain ur TextBox1ClientId:

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

either pass the client Id from your aspx page as a parameter to the validate method, or embed your javascript function in ur aspx.

Upvotes: 1

Related Questions