Wrox Programmer Forums
Go Back   Wrox Programmer Forums > ASP.NET and ASP > ASP.NET 4 > BOOK: Beginning ASP.NET 4 : in C# and VB
|
BOOK: Beginning ASP.NET 4 : in C# and VB
This is the forum to discuss the Wrox book Beginning ASP.NET 4: in C# and VB by Imar Spaanjaars; ISBN: 9780470502211
Welcome to the p2p.wrox.com Forums.

You are currently viewing the BOOK: Beginning ASP.NET 4 : in C# and VB section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old November 10th, 2014, 02:13 PM
Friend of Wrox
 
Join Date: Mar 2011
Posts: 126
Thanks: 39
Thanked 2 Times in 2 Posts
Default ContactForm (Ch. 9) - Validation - Moving to external .js file

Hi Imar,

I am trying to move some of the javascript from the ContactForm user control to an external .js file. I'm a little stuck as to how to handle the client-side validation for the customValidator (p.312), ValidatePhoneNumbers:

Code:
function ValidatePhoneNumbers(source, args) 
{
    var phoneHome = document.getElementById('<%= PhoneHome.ClientID %>');
    var phoneBusiness = document.getElementById('<%= PhoneBusiness.ClientID %>');

    if (phoneHome.value != '' || phoneBusiness.value != '')
    {
        args.IsValid = true;
    }
    else
    {
        args.IsValid = false;
    }
}
This validation works perfect if left in the .acx file, but doesn't work if I move it to an external .js file.

In general, it seems that "<% %> " blocks are only allowed inside .aspx files. So I get an "Unable to get property value of an undefined or null reference" error on line, if (phoneHome.value != '' || phoneBusiness.value != '').

What is the best way to handle code with "<% %>" and move it to external .js files?

I guess one solution might be to change the ClientIDMode property for controls to static and then reference the control by id when using document.getElementById(''), but is this the recommended way?

Thanks.
Tulsi
 
Old November 10th, 2014, 03:43 PM
Imar's Avatar
Wrox Author
 
Join Date: Jun 2003
Posts: 17,089
Thanks: 80
Thanked 1,576 Times in 1,552 Posts
Default

Hi Tulsi,

>> I guess one solution might be to change the ClientIDMode property for controls to static and then reference the control by id when using document.getElementById(''), but is this the recommended way?'

Yes, that's the way to do it. Alternatively you can assign a CSS class and inside your JS file get the control by its CSS classs. It's the same thing eventually, so I think the ID route is a bit more explicit.

Cheers,

Imar
__________________
Imar Spaanjaars
http://Imar.Spaanjaars.Com
Follow me on Twitter

Author of Beginning ASP.NET 4.5 : in C# and VB, Beginning ASP.NET Web Pages with WebMatrix
and Beginning ASP.NET 4 : in C# and VB.
Did this post help you? Click the button below this post to show your appreciation!
The Following User Says Thank You to Imar For This Useful Post:
Tulsi (November 12th, 2014)





Similar Threads
Thread Thread Starter Forum Replies Last Post
question about viewing/editing js file in ch 2 troutguy BOOK: Professional Ajax ISBN: 978-0-471-77778-6 1 August 25th, 2006 09:48 PM
Thoughts on Dynamically assigning external js file fs22 Javascript 1 June 23rd, 2004 02:12 PM
refreshing external js file fs22 Javascript How-To 1 June 17th, 2004 05:02 PM
Advice on Dynamically assigning external js file fs22 Javascript 9 June 10th, 2004 05:26 PM
Dynamically assign external js file fs22 Javascript How-To 1 May 21st, 2004 05:22 PM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.