After research in the Internet I found finally the solution, [here's the answer and the credits belong to him.][1] I'm not sure why the `WebPart` couldn't _or can't_ detect the `ASP.NET` controls in `var` variables _maybe there's some about the `if` conditionals..._ Here's the full validation code that I'm using in the `WebPart` that I develop a few days ago. <script type="text/javascript"> function validateForm() { //Declare variables. var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; /*For some unknown reason, fields to validate (if they're declared on variables type "var") are NOT detected.*/ //Validate fields (ASP.NET fields). if (document.getElementById('<%= txtSubject.ClientID %>').value.length == 0) { alert("Field ''Subject'' is required."); document.getElementById('<%= txtAsunto.ClientID %>').focus(); return false; } else if (document.getElementById('<%= txtEmail.ClientID %>').value.length == 0) { alert("Field ''Email'' is required."); document.getElementById('<%= txtEmail.ClientID %>').focus(); return false; } else { if (!emailPattern.test(document.getElementById('<%= txtEmail.ClientID %>').value)) { alert("Field ''Email'' is invalid."); document.getElementById('<%= txtEmail.ClientID %>').focus(); return false; } else{ //Your code... } } }</script> _N.B: The following code was tested and it works in pure `HTML`, `SharePoint 2010` and `SharePoint 2013 (Online)`._ [1]: https://stackoverflow.com/a/26460071