problem in form validation of input using onSubmit

Hi, Im trying to check for uploading of files of only doc and ps types. For that matter I have used two javascript funtions and the form. Im trying to use onSubmit event handler along with form_for.But the problem is that, files of any types are getting uploaded. Can anybody point me out what am I doing wrong here ?

-Thanks Saurav

the javascript functions are

<script> extArray = new Array(".doc",".ps"); function checkFile(file){         fileType = false;         if (!file) return false;

        while (file.indexOf("\\") != -1)             file = file.slice(file.indexOf("\\") + 1);             ext = file.slice(file.indexOf(".")).toLowerCase();

        for (var i = 0; i < extArray.length; i++) {             if (extArray[i] == ext) {                 fileType = true; break;             }         }         if (!fileType) {             alert("Please upload files that end in types: " +             (extArray.join(" ")) +             "\nPlease select a new " +             "file to upload and submit again.");             file1.focus();             return false;         }         else             return true; }

   function validate_form_fields(this)     {         var file1 = document.getElementById("this.file1");

        if (checkFile(file1))             return true;         else             return false;

    } </script>

the code for form is :

<%= error_messages_for :project %>

<tr>       <td>

      <% form_for :project, :url => {:controller=>:project,:action => "create"},:html=>{:multipart => true, :name => "newproject_form", :onSubmit => "return validate_form_fields(this);"} do |f| -%>

      <!--form section-->

          <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>             <TR>               <TD HEIGHT=15 COLSPAN=11></TD>               <TD WIDTH=6 HEIGHT=15></TD>             </TR>             <TR>               <TD width="89" HEIGHT="27">Project Name</TD>               <TD HEIGHT="27" ><%= f.text_field "name" %></TD>             </TR>             <TR>               <TD HEIGHT=25>Description</TD>               <TD HEIGHT=25 align="left"><%= f.text_area "description", :cols => 40, :rows => 10 %></TD>             </TR>             <tr>             Please upload only files that end in: .doc and .ps             </tr>

            <TR>             <TD HEIGHT=24>Upload Files </TD>               <TD HEIGHT=24 ><%= file_field_tag :file1 %></TD>             </TR>

            <TR>               <TD height="28" >&nbsp;</TD>               <TD><a href="javascript:document.newproject_form.submit()";><img src="/images/create.jpg" /></a></TD>

              <TD>&nbsp;</TD>               <TD></TD>             </TR>

Hi everybody, I have figured it out actually the problem was that the the values were not getting passed to the javascript method. Now its working.

Now there is another issue i want to know

instead of tag "Create" in <%= submit_tag 'Create' %> can i display some image out there so that when i click on the image the form gets submitted.

in html i know we can do something like this

<a href="javascript:document.newproject_form.submit()";><img src="/images/create.jpg" /></a>

Is there any equivalent in erb ??

image_submit_tag should do it.

http://api.rubyonrails.com/classes/ActionView/Helpers/FormTagHelper.html#M001046

-Kyle

Ya I got it yesterday ...n now its working fine...nyways thanks for the information -Saurav Kyle wrote: