Waarom moet ik 2 keer klikken voordat de functie word uitgevoerd?

Status
Niet open voor verdere reacties.

yoeri10

Gebruiker
Lid geworden
28 mrt 2014
Berichten
30
Hallo,

Ben bezig geweest een code te maken voor een formulier.
Als het veld leeg is moet deze shaken.

Code:
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/stylesheet.css" />
<script src="js/jquery.min.js" type="text/javascript"></script>
<script src="js/jquery-ui.min.js" type="text/javascript"></script>
</head>
<body>
    
<form >
<input type="text" class="hah" id="remark1" name="remark1">
<br/>
<button onclick="valideer()" >valideer</button>
    </form>

<script type="text/javascript">

function valideer(){
    var remark=document.getElementById('remark1');
    if (remark.value.length == 0){
        $(".hah").effect('shake', 500 );
        return false;
    }
}
</script>

</body>
</html>

Ik moet 2x klikken voordat de functie word uitgevoerd. Hoe kan dit?

Gr. Yoeri
 
Ik heb het niet getest, maar ik denk dat het probleem ligt aan de remark.value.length.

Maak er eens dit van:

[JS]function valideer(e)
{
var remark=document.getElementById('remark1');

console.log('valideer() call, remark = ', remark, 'value.length = ', remark.value.length);

if (remark.value.length == 0)
{
$(".hah").effect('shake', 500 );

return false;
}
}[/JS]
Open console (F12 in Chrome, FF volgens mij ook) en refresh/klik op de knop. Wat zegt 't console?

Daarnaast: het is altijd wel netjes om een event handler te gebruiken ipv. in de HTML een on-event. Daarnaast: een <form> is niet nodig, tenzij de code maar een voorbeeld was en je ook dingen verstuurt.
Ohja, en volgens mij kan je je dEBY 'remark' var direct in jQuery gooien, dan is de ".hah" class niet nodig.


[XML]
<input type="text" id="remark1">
<br/>
<button id='valideerknop'>valideer</button>


<script>
document.getElementById('valideerknop').addEventListener('click', function()
{
var remark = document.getElementById('remark1');

console.log('valideer() call, remark = ', remark, 'value.length = ', remark.value.length);

if (remark.value.length == 0)
{
$(remark).effect('shake', 500 );

return e.preventDefault();
}
}
</script>[/XML]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan