required fields en Return werkt als submit knop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mieke Dekker

Mieke Dekker

12/04/2015 14:39:48
Quote Anchor link
Eigenlijk heb ik op dit moment 2 problemen - Verplichte velden werken niet consequent (soms wel soms niet ???) en bij Return verzend het formulier en de bedoeling is dat het alleen verzonden wordt als de verzendknop wordt ingedrukt.

Ik heb nu het volgende staan in de <head>
<script type="text/JavaScript">
$(document).ready(function() {
$("#form1").validate({
rules: {
email: {
required: true,
email: true },
controleEmail: {
required: false,
equalTo: "#email"}
},
messages: {
email: "Vul een geldig emailadres in"

},
showErrors: function(errorMap, errorList) {
this.defaultShowErrors();
$("#summary").html("U heeft niet alle velden (juist) ingevuld. Controleer de velden met een <img src=\"required.gif\"/>.");
}
});
});
</script>

En in ieder verplicht veld in de <body>
(in de input tag)"class="required" of class="required textfield
En dan een label
<label for="naam" class="error" style="display:none;"><img src="required.gif" /> Geb. datum verplicht/required </label>


Voor het return probleem heb ik dit geprobeerd (werkt dus niet)
In de <head>
required"onkeypress="return handleEnter(this,event)"
En in ieder inputveld tussen de <> onkeypress="return handleEnter(this,event)"

Als verzendknop heb ik deze aangemaakt.
<input type="submit" value=" Verzenden/Send ">

Ik maak een formulier (privé) voor de vereniging en dit is op dit moment het grootste probleem, want we ontvangen lege en/of onvolledig ingevulde formulieren.

In een later stadium wil ik ook nog een Captcha inbouwen omdat die robots best we vervelend zijn.

Vast bedankt voor antwoorden. Groet Mieke
 
PHP hulp

PHP hulp

16/01/2025 08:07:21
 
Ivo P

Ivo P

12/04/2015 14:57:43
Quote Anchor link
<input type="text" name="foo" required="required">
 
Frank Nietbelangrijk

Frank Nietbelangrijk

12/04/2015 16:00:35
Quote Anchor link
Google eens op html5 input types
 
Thomas van den Heuvel

Thomas van den Heuvel

12/04/2015 16:24:39
Quote Anchor link
Uhm. Waar/hoe wordt dit formulier verwerkt? Daar moet je die controles nogmaals uitvoeren want JavaScript kun je simpelweg uitzetten waarmee je al deze controles kunt omzeilen?

Dit verwerkscript zou ook rechtstreeks aangeroepen kunnen worden vanaf een andere site als je hier geen voorziening inbouwt die CSRF tegengaat (dit kan een CAPTCHA ook/mede helpen tegengaan denk ik).

Voor het niet-submitten-via-enter, je zou hiervoor een CSS-klasse kunnen introduceren die je aan alle velden hangt waar je dit niet wilt laten doen, en vervolgens voeg je wat jQuery toe zodat deze keypress wordt afgevangen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
</head>

<body>
<form action="woops.htm" method="post">
    <input type="text" class="nsoe" name="text" />
    <button type="submit">verzend</button>
</form>

<script type="text/javascript">
//<![CDATA[
$().ready(function() {
    // No Submit On Enter
    $('.nsoe').keypress(function(e) {
        if (e.which == 13) {
            e.preventDefault();
            alert('noes!');
        }
    });
});
//]]>
</script>
</body>
</html>

Dit helpt natuurlijk NIET als iemand bewust JavaScript-functionaliteit uitzet :). Controleer ALTIJD de data nogmaals aan de serverzijde.
Gewijzigd op 12/04/2015 16:25:25 door Thomas van den Heuvel
 
Eddy E

Eddy E

12/04/2015 18:15:29
Quote Anchor link
In plaats van de ENTER-knop volledig uit te schakelen, wat echt onvriendelijk is, geef het de functionaliteit van een TAB.
Dus ENTER verzend dan niet, maar gaat naar het volgende forumveld. Dat is gebruikersvriendelijker.
Daarnaast zou ik je 'controles' allemaal in HTML5 doen: dat is werkt altijd beter.
 
Thomas van den Heuvel

Thomas van den Heuvel

12/04/2015 19:42:17
Quote Anchor link
Eddy E op 12/04/2015 18:15:29:
In plaats van de ENTER-knop volledig uit te schakelen, wat echt onvriendelijk is, geef het de functionaliteit van een TAB.


Dat doe ik ook niet, ik geef aan hoe je deze uit kunt zetten in specifieke velden waar dat voor ongewenst gedrag zorgt. Het klinkt wel aardig, van een enter een tab maken, maar daarmee verander je echt de betekenis van wat een toets doet. Ik weet niet, misschien is het dan beter dat een toets niets doet, in plaats van wat anders. Maar misschien ook niet... Plus je blijft dan hangen op textareas denk ik. Ik zou iig mensen niet aansturen om toetsen op een niet (of minder) natuurlijke manier te gebruiken eigenlijk.

Je zou het ook zo kunnen zien: in een inputveld horen geen regelovergangen te zitten (anders had je maar een textarea moeten gebruiken). Het is dan ook niet vreemd dat je Enter-toets dan niets doet.

EDIT: daarnaast: als iemand per ongeluk op een enter ramt, dan zou de formulier-validatie toch getriggerd moeten worden (de js-validatie en/of de controle aan de serverkant)? Als je formulier onvolledig was ingevuld zou deze dan sowieso niet gesubmit (en zeker niet opgeslagen) moeten worden...
Gewijzigd op 12/04/2015 20:09:49 door Thomas van den Heuvel
 
Mieke Dekker

Mieke Dekker

13/04/2015 01:00:15
Quote Anchor link
Bedankt allemaal, probleem opgelost. Bleek dat jquery beschadigd was. Return nu ook geen probleem meer omdat één van de laatste velden waarin men komt een verplicht veld is. Toch maar snel een Captcha toevoegen voor de robots.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.