Avatar billede kischi Novice
02. oktober 2012 - 16:34 Der er 8 kommentarer og
1 løsning

Validering

Hej,

Jeg forsøger at validere en form ved hjælp af javascript, men det virker ikke.
Det første jeg forsøger at validere er om der er blevet uploadet et billede.

Er det nogle der ved hvad jeg gør forkert?

Jeg håber nogle kan hjælpe.

Er er min javascript kode:

    <script language="javascript" type="text/javascript">
    function validateForm()
    {
    var x=document.forms["profile"]["file_name"].value;
    if (x==null || x=="")
    {
    alert("An image must be uploadet");
    return false;
    }
    }
    </script>

Og her er min form

    <form method="post" action="../somefile.php" name="profile" enctype="multipart/form-data" onsubmit="xmlhttpPost('somefile.php', 'profile', 'MyResult'); return false;" ">
    <tr> <td width=20>
    <label for="Upload Image">Upload image</label>
    </td>
    <td width=20>
    <input name="file_name" type="file">
    </td>
    </tr>
    <tr>
    <td width=50>
    <div class="input-row"><label for="mail">E-mail: </label>
    </td>
    <td width=0>
    <input id="mail" name="mail" type="text" /></div>
    </td>
    </tr>
    <tr>
    <td>
    <input name="upload" value="Upload" type="submit">
    </td>
    </tr>
    </table>
    </form>
    </div><!-- end form -->
Avatar billede olebole Juniormester
02. oktober 2012 - 16:50 #1
<ole>

Billedet er først uploaded, når funktionen xmlhttpPost er kørt færdig, så du kan ikke på dét tidspunkt tjekke, om det er uploaded.

Spørgsmålet er desuden, om funktionen overhovedet kan uploade filer. Det kræver tilstedeværelse af XMLHttpRequest 2.0, som langtfra er understøttet af nettets browsere endnu.

/mvh
</bole>
Avatar billede olebole Juniormester
02. oktober 2012 - 16:54 #2
- og så bør du nok begynde at forholde dig til alle dine åbne tråde  *o)
Avatar billede kischi Novice
02. oktober 2012 - 17:06 #3
Ok, nu har jeg ændret formen lidt så den ikke først skal køre færdig.
Og den kan godt uploade billederne, men validere stadig ikke.

Og med hensyn til åbne tråde, så selv om de ikke er blevet besvaret, skal jeg så bare selv svare på dem og give mig selv point eller hvordan bør jeg forholde mig til dem?

Nu ser min form sådan her ud:

<form method="post" action="../somefile.php" name="profile" enctype="multipart/form-data">
  <tr>  <td width=20>
        <label for="Upload Image">Upload image</label>
        </td>
        <td width=20>
        <input name="file_name" type="file">
        </td>
</tr>
<tr>
<td width=50>
        <div class="input-row"><label for="mail">E-mail: </label>
</td>
        <td width=0>
        <input id="mail" name="mail" type="text" /></div>
</td>
</tr>
<tr>
<td>
        <input name="upload" value="Upload" type="submit">
        </td>
</tr>
</table>
       
       
    </form>
</div><!-- end form -->
Avatar billede olebole Juniormester
02. oktober 2012 - 17:18 #4
Nej, det er ikke så mærkeligt. Du kalder jo aldrig valideringsfunktionen  =)

Din HTML holder ikke vand, så jeg har tilladt mig at skrive en lidt rettet kode, som også er indrykket, så du har en chance for at kunne finde rundt i den:

<script type="text/javascript">
function validateForm(elmForm) {
    var x=elmForm["file_name"].value;
    if (x==null || x=="")    {
        alert("An image must be uploadet");
        return false;
    }
}
</script>


<div>
<form method="post" action="../somefile.php" name="profile" enctype="multipart/form-data" onsubmit="return validateForm(this)">
<table>
<tr>
    <td>
        <label for="Upload Image">Upload image</label>
    </td>
    <td>
        <input name="file_name" type="file">
    </td>
</tr>
<tr>
    <td>
        <div class="input-row"><label for="mail">E-mail: </label>
    </td>
    <td>
        <input id="mail" name="mail" type="text"></div>
    </td>
</tr>
<tr>
    <td colspan="2">
        <input name="upload" value="Upload" type="submit">
    </td>
</tr>
</table>
</form>
</div>
Avatar billede olebole Juniormester
02. oktober 2012 - 17:21 #5
- og sammen med din XHR-funktion:

<script type="text/javascript">
function validateForm(elmForm) {
    var x=elmForm["file_name"].value;
    if (x==null || x=="")    {
        alert("An image must be uploadet");
        return false;
    }
    return true;
}
</script>


<div>
<form method="post" action="../somefile.php" name="profile" enctype="multipart/form-data" onsubmit="if(validateForm(this)){xmlhttpPost(this.action, this.name, 'MyResult')};return false">
<table>
<tr>
    <td>
        <label for="Upload Image">Upload image</label>
    </td>
    <td>
        <input name="file_name" type="file">
    </td>
</tr>
<tr>
    <td>
        <div class="input-row"><label for="mail">E-mail: </label>
    </td>
    <td>
        <input id="mail" name="mail" type="text"></div>
    </td>
</tr>
<tr>
    <td colspan="2">
        <input name="upload" value="Upload" type="submit">
    </td>
</tr>
</table>
</form>
</div>
Avatar billede olebole Juniormester
02. oktober 2012 - 17:24 #6
"Og med hensyn til åbne tråde, så selv om de ikke er blevet besvaret, skal jeg så bare selv svare på dem og give mig selv point eller hvordan bør jeg forholde mig til dem?"

Det er altid hensigtsmæssigt at læse et forums FAQ  *o)
Avatar billede kischi Novice
02. oktober 2012 - 17:39 #7
Jeps helt sikkert, nu validere den om der er et billede :)
Tak for det.

hvis du svare, så giver jeg point. :D
Avatar billede olebole Juniormester
04. oktober 2012 - 16:56 #8
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede kischi Novice
04. oktober 2012 - 23:28 #9
ok men tak for hjælpen ihvertfald :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester