Link to home
Start Free TrialLog in
Avatar of andrew67
andrew67

asked on

asp.net custom form validation using javascript

hi everyone i have the following form that i use to upload files to a web server

<form enctype="multipart/form-data" runat="server">
<tr>
  <td>Select file:</td>
  <td><input id="uplTheFile" type=file runat="server"></td>
</tr>
<tr>
  <td colspan="2">
  <input type=button id="btnUploadTheFile" value="Upload"
                    OnServerClick="btnUploadTheFile_Click" runat="server">
  </td>
</tr>
</form>

this works fine, however i want to call a javascript function when they click the upload button so i can show a hidden layer that say processing.  the problem is i cant get the form to call my javascript i have tried this

<form enctype="multipart/form-data" runat="server" onsubmit="return checkform(this); return false;" >

but it never gets called

can anyone point me in the right direction

thanks


Avatar of Bob Learned
Bob Learned
Flag of United States of America image

Did you try attaching to the client-side click?

   btnUploadTheFile.Attributes["onClick", ...

Bob
Avatar of andrew67
andrew67

ASKER

sorry can expand a little on what you mean by this

thanks
The "return false" can't be executed...

What value is returned by checkform() ?
nothing at all its as if the javascript isnt even called this is the code generated at run time, as you can see the button calls another function and just submits the form

<form name="_ctl0" method="post" action="form1.aspx?user_id=pf&amp;currentFiles=2,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24" id="_ctl0" enctype="multipart/form-data" onsubmit="return checkform(this); return false;">
<input type="hidden" name="user_id" value="pf" />
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" value="dDw1NDIxMjQwODM7dDw7bDxpPDA+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPFw8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0id29ya2VyLnBocCIgbmFtZT0idXBsb2FkZWRmaWxlcyJcPlw8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm1bY2FzZV0iIHZhbHVlPSIiIGlkPSJjYXNlIiAvXD5cPHRhYmxlIGNsYXNzPSJmaWxlRGF0YSIgc3R5bGU9ImJvcmRlcjpzb2xpZCAwcHggIzAwMFw7Ilw+XDx0clw+XDx0ZCBzdHlsZT0id2lkdGg6MjBweFw7Ilw+XDwvdGRcPlw8dGggc3R5bGU9IndpZHRoOjE1MHB4XDsiXD5cPGEgaHJlZj0iZm9ybTEuYXNweD91c2VyX2lkPXBmJmN1cnJlbnRGaWxlcz0yLDEsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCZvcmRlckJ5PWZpbGVfbmFtZSJcPk5hbWVcPC9hXD5cPC90aFw+XDx0aCBzdHlsZT0id2lkdGg6MTUwcHhcOyJcPlw8YSBocmVmPSJmb3JtMS5hc3B4P3VzZXJfaWQ9cGYmY3VycmVudEZpbGVzPTIsMSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0Jm9yZGVyQnk9dXBsb2FkX2lkIlw+VXBsb2FkZWQgQnlcPC9hXD5cPC90aFw+XDx0aCBzdHlsZT0id2lkdGg6ODBweFw7Ilw+XDxhIGhyZWY9ImZvcm0xLmFzcHg/dXNlcl9pZD1wZiZjdXJyZW50RmlsZXM9MiwxLDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQmb3JkZXJCeT1zaXplIlw+U2l6ZVw8L2FcPlw8L3RoXD5cPHRoIHN0eWxlPSJ3aWR0aDo4NXB4XDsiXD5cPGEgaHJlZj0iZm9ybTEuYXNweD91c2VyX2lkPXBmJmN1cnJlbnRGaWxlcz0yLDEsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCZvcmRlckJ5PWRhdGVfYWRkZWQiXD5EYXRlIEFkZGVkXDwvYVw+XDwvdGhcPlw8L3RyXD5cPHRyXD5cPHRkIGNsYXNzPSJjaGVja0JveCJcPlw8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSI4MiIgbmFtZT0iZnJtW2ZpbGVdW10iXD5cPC90ZFw+XDx0ZCBjbGFzcz0ibmFtZSJcPmFwcGxpY2F0aW9uLnBuZ1w8L3RkXD5cPHRkIGNsYXNzPSJ1cGxvYWRlZEJ5Ilw+IE1hcmlhIENhcG9yYXNvXDwvdGRcPlw8dGQgY2xhc3M9InNpemUiXD4wLjQ2ICBrYlw8L3RkXD5cPHRkIGNsYXNzPSJkYXRlQWRkZWQiXD4xMC8yNi8yMDA3XDwvdGRcPlw8L3RyXD5cPHRyXD5cPHRkIGNsYXNzPSJjaGVja0JveCJcPlw8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSI4NCIgbmFtZT0iZnJtW2ZpbGVdW10iXD5cPC90ZFw+XDx0ZCBjbGFzcz0ibmFtZSJcPmdnZ2dnZy56aXBcPC90ZFw+XDx0ZCBjbGFzcz0idXBsb2FkZWRCeSJcPiBNYXJpYSBDYXBvcmFzb1w8L3RkXD5cPHRkIGNsYXNzPSJzaXplIlw+MTAwLjkyIG1iXDwvdGRcPlw8dGQgY2xhc3M9ImRhdGVBZGRlZCJcPjEwLzI2LzIwMDdcPC90ZFw+XDwvdHJcPlw8L3RhYmxlXD5cPGJyIC9cPiZuYnNwXDtcPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IkRvd25sb2FkIFNlbGVjdGVkIiBvbmNsaWNrPSJjaGVja2ZybSgnZG93bmxvYWRmaWxlcycpXDsiXD4mbmJzcFw7XDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJEZWxldGUgU2VsZWN0ZWQiICBvbmNsaWNrPSJjaGVja2ZybSgnZGVsZXRlZmlsZXMnKVw7Ilw+XDwvZm9ybVw+Oz4+Oz47Oz47Pj47PpdXianVLtfUZ+6tvPLUm8tMalLb" />

<script language="javascript" type="text/javascript">
<!--
      function __doPostBack(eventTarget, eventArgument) {
            var theform;
            if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
                  theform = document._ctl0;
            }
            else {
                  theform = document.forms["_ctl0"];
            }
            theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
            theform.__EVENTARGUMENT.value = eventArgument;
            theform.submit();
      }
// -->
</script>

<tr>
  <td>Select file:</td>
  <td><input name="uplTheFile" id="uplTheFile" type="file" /></td>

</tr>
<tr>
  <td colspan="2">
  <input language="javascript" onclick="__doPostBack('btnUploadTheFile','')" name="btnUploadTheFile" id="btnUploadTheFile" type="button" value="Upload" />
  </td>
</tr>
</form>
hm.  I wonder if the runat='server' is causing the "local" routine to not be executed...
is there a way i can add content to the function __doPostBack(

that is auto generated
ASKER CERTIFIED SOLUTION
Avatar of andrew67
andrew67

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Good to know.  Thanks for sharing.