Toon posts:

[js] Mozila Firefox post een form na een onclick

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met een listig probleem, hier onder staat de code waar ik mee werk.
Wanneer ik in Mozila Firefox op de knop Add druk, dan wordt het formulier met de functie Submit_AddUser() gevalideert. Wanneer ik 1 veld leeg laat, komt de alert "fout", zoals het hoort.
Daarna doet Firefox ook nog het form submitten, zodat er weer een aanvraag naar de server wordt verstuurd. Dit terwijl het met Internet Explorer niet gebeurt, zoals het hoort. Ik heb al wat gezocht op de mozila site, maar weinig relevants gevonden.
Een voorbeeld van m'n probleem staat hier

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<script>
function Submit_AddUser()
{
    var ua_name = document.getElementById("ua_name").value;
    var ua_email = document.getElementById("ua_email").value;
    var ua_pass = document.getElementById("ua_pass").value;
    alert (ua_name+" | "+ua_email+" | "+ua_pass);
    if (ua_name == "" || ua_email == "" || ua_pass == "")
    {
        alert("fout");
    }
    else {
        alert("klopt");
    }
}
</script>
<form action="index.php?page=addUser&amp;filled=1" method="post" id="addUserForm">
<table id="addUser" cellpadding="0" cellspacing="0">
<tr class="header">
    <td colspan="2">Create new user</td>
</tr>
<tr>
    <td>Name</td>

    <td><input type="text" name="ua_name" id="ua_name" maxlength="50" /></td>
</tr>
<tr>
    <td>Email</td>
    <td><input type="text" name="ua_email" id="ua_email" maxlength="150" /></td>
</tr>
<tr>
    <td>Password</td>
    <td><input type="password" name="ua_pass" id="ua_pass" maxlength="50" /></td>
</tr>

<tr>
    <td>Level</td>
    <td><select id="ua_level" name="ua_level" >
            <option value="0">Administrator</option>
            <option value="1" selected>User</option>
        </select>
    </td>
</tr>

<tr>
    <td colspan="2">&nbsp;</td>
</tr>
<tr  class="header">
<td colspan="2">
    <button onclick="Submit_AddUser()">Add</button>
    <button onclick="Reset_AddUser()">Cancel</button>
</td>
</tr>
</table>
</form>

Verwijderd

is de eerste keer dat ik een listig probleem tegenkom :D

maar doe eens een return value meegeven en niet onclick doen, maar onsubmit op de form, zal wel helpen

[ Voor 17% gewijzigd door Verwijderd op 28-10-2004 13:06 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Maak van die buttons:

code:
1
2
<input type="button" onclick="Submit_AddUser()" value="Add">
<input type="button" onclick="Reset_AddUser()" value="Cancel">


Dan heb je die submit niet meer.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

validatie doe je in een onsubmit eventhandler die je false of true laat teruggeven. Bij false wordt dan het event (de submit) gecancelled:
HTML:
1
<form action="foo.php" onsubmit="return validate(this)">

JavaScript:
1
2
3
4
5
6
7
8
9
10
function validate(form) {

  // als goed
  return true;

  // als fout
  alert('voudt!!!111');
  return false;

}


Ik zou trouwens de variabelen addUser en filled in hidden inputs stoppen; GET-vars meesturen met een POST vind ik erg ranzig...

[ Voor 16% gewijzigd door crisp op 28-10-2004 13:09 ]

Intentionally left blank


Verwijderd

Topicstarter
Eens moet de eerste keer zijn ;)
Je wordt iniedergeval bedankt, dat werkte.

Verwijderd

Sommige mensen moeten echt eens goed kapot worden geslagen voor ze uitspraken doen als "zoals het hoort".

Zoek nou eens op hoe het hoort!
http://www.w3.org/TR/html401/interact/forms.html#edef-BUTTON

En wat staat daar?
type = submit|button|reset [CI]
This attribute declares the type of the button. Possible values:
  • submit: Creates a submit button. This is the default value.
  • reset: Creates a reset button.
  • button: Creates a push button.
Nou, als dat niet duidelijk is weet ik het ook niet meer. En anders hadden we nog altijd het "event" kunnen cancellen door false als return value re geven.

[ Voor 3% gewijzigd door Verwijderd op 28-10-2004 13:12 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Verwijderd schreef op 28 oktober 2004 @ 13:12:
Sommige mensen moeten echt eens goed kapot worden geslagen voor ze uitspraken doen als "zoals het hoort".
Iets genuanceerder kan ook wel :/

Maar je hebt wel gelijk, op het moment dat IE onverwacht gedrag vertoont wat als 'goed' ervaren wordt omdat FF het niet vertoont denken mensen direct dat FF zuigt. Maar vaak (lees: altijd) is het zo dat IE de mensen volgens verkeerde 'standaarden' laat proggen en dat FF keurig de standaard volgt.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

IE heeft wel meer bugs mbt het button-element; ik mijd daarom ook gebruik daarvan

Intentionally left blank

Pagina: 1