Introduction
In one of my recent projects, I faced the problem of how to transfer control focus to the appropriate control when validation fails. I was confused with the client requirement at first but realized it is a common and basic requirement from the user point. But it is not implemented in the WebUIValidation.js. You can implement this with a minimal setting change in the web.config file and a little code change in the WebUIValidation file.
Add the following element in the system.web section of the web.config file for using a custom validation file:
<webControls clientScriptsLocation="<virtual_path>/javascripts/"></webControls>
Add a new function in the WebUIValidation which will set the focus to the control which fails in the validation process.
function ValidatorControlFocus()
{
if(typeof(Page_Validators) != "undefined")
{
for (i = 0; i < Page_Validators.length; i++)
{
val = Page_Validators[i];
if(val.isvalid == false)
{
control = document.all[val.controltovalidate];
if(control != null)
{
if( !control.isDisabled ){
if(control.style.visibility != "hidden"){
control.focus();
}
}
return;
}
}
}
}
}
Call the above function in Page_ClientValidate as well as in ValidatorCommonOnSubmit functions.
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here