Allora, scusate per il titolo molto spartano, ma sul serio, il mio form si valida quando gli pare.
Ecco il codice:
codice:
var dialogbox = $('div.dialogbox');
dialog(valid);
$(document).ready(function() {
$('.login_form').validate({
onfocusout: false,
onkeyup: false,
onclick: false,
errorContainer: '.dialogbox',
errorLabelContainer: '.dialogbox ul',
wrapper: 'li',
rules: {
username: {
required: true,
alphanumeric: true
},
password: 'required'
},
messages: {
username: {
required: 'Devi inserire un username',
alphanumeric: 'Nell\'username sono ammessi solo lettere, numeri e trattini bassi(_)'
},
password: 'Devi inserire una password'
},
showErrors: function(errorMap, errorList) {
$(".dialogbox").text(this.defaultShowErrors()).hide(0);
dialog(0);
}
});
});
function dialog(valid) {
if(valid == 0) {
$(dialogbox).attr('class', 'dialogbox error');
$(dialogbox).slideDown('fast');
} else if(valid == 1) {
$(dialogbox).attr('class', 'dialogbox good');
$(dialogbox).slideDown('fast');
}
}
ed ecco la parte html:
codice:
<div class="dialogbox">
<ul><?=$dialog['msg'];?>[/list]
</div>
<form class="login_form" action="./?c=login" method="POST">
<table>
<tbody>
<tr>
<td>
<label for="username">Username</label>
</td>
<td>
<input required="required" name="username" autocomplete="off" placeholder="Il tuo username" type="text"/>
</td>
</tr>
<tr>
<td>
Password
</td>
<td>
<input required="required" name="password" autocomplete="off" placeholder="La tua password" type="password"/>
</td>
</tr>
<tr>
<td class="submit" colspan="2">
<button type="submit" class="button">
Login
</button>
</td>
</tr>
</tbody>
</table>
</form>
<script type="text/javascript">
var valid = <?=$dialog['valid'];?>;
</script>
In pratica, se non inserisco niente, mi mostra sia che non ho inserito username che non ho inserito la password, invece, se inserisco SOLO l'username, mi invia il form! Aiutatemi...
Neanche su JSBin JSFiddle me lo fa andare...non so che fare...
Aggiungo anche che nella gestione dei dati, mi da che il campo "password" è:
string(0) ""
Il che è strano, dal momento che non lo dovrebbe neanche riconoscere come stringa, ma NULL o undefined...