Formulaire ajax : Validation avec Enter avec IE8
Posté : 23 févr. 2013, 03:15
Bonjour,
Avec seulement IE, mon submit ne fonctionne pas lorsque j'appuie sur la touche Enter.
Pourtant c'est un input type="submit"
Voici le code :
[javascript]
img1 = new Image(16, 16);
img1.src="../img/spinner.gif";
$("#form-login > form#formlogin").submit(function(){
$('#login').hide();
$('#ajax_loading').show();
var str = $(this).serialize();
setTimeout(function() {
$.ajax({
type: "POST",
url: "../ajax/login.php",
data: str,
success: function(msg){
$("#form-login").ajaxComplete(function(event, request, settings){
$('#login').show();
$('#ajax_loading').hide();
if(msg == 'OK'){
$('#close-dialog-login').hide();
$('a.register').hide();
$('span.separe').hide();
$('#dialog-login').slideDown('slow');
$('#login_response').hide();
$('#form-login').css({
'background-color': '#54ff75',
'border': '1px solid #005a16',
'color': '#004110',
'padding': '5px',
'font-weight': 'bold',
'text-align': 'center',
'line-height': '15px'
});
var login_response = 'Vous êtes bien connecté !' + '<br />' + 'Redirection automatique, veuillez patientez...';
$(this).html(login_response);
setTimeout(function() {
window.location = '../index.php';
}, 3000);
}
else {
var login_response = msg;
$('#login_response').fadeIn();
$('#login_response').html(login_response);
}
});
}
});
}, 2000);
});
[/javascript]
La page login.php appelée par ajax :

Avec seulement IE, mon submit ne fonctionne pas lorsque j'appuie sur la touche Enter.
Pourtant c'est un input type="submit"
Voici le code :
<div id="form-login">
<form method="post" action="" onsubmit="return false" class="form" id="formlogin">
<table>
<tr><td><label class="form-login-label">Nom d'utilisateur</label></td></tr>
<tr><td><input type="text" name="pseudo" id="pseudo" class="form-login-input" maxlength="23" /></td></tr>
<tr><td><label class="form-login-label">Mot de passe</label></td></tr>
<tr><td><input type="password" name="password" id="password" class="form-login-input" maxlength="30" /></td></tr>
<tr>
<td>
<input type="checkbox" id="checkbox" name="check" class="checkbox" />
<label class="check" for="checkbox">Rester connecté</label>
<label class="mdp">| <a>Mot de passe perdu</a></label>
</td>
</tr>
<tr>
<td>
<input type="submit" class="login" id="login" value="" />
<div id="ajax_loading" style="display: none;">
<img src="img/spinner.gif" /><p class="mini">Connexion en cours...</p>
</div>
</td>
</tr>
<tr><td></td></tr>
</table>
</form>
</div>
Et le code Ajax : [javascript]
img1 = new Image(16, 16);
img1.src="../img/spinner.gif";
$("#form-login > form#formlogin").submit(function(){
$('#login').hide();
$('#ajax_loading').show();
var str = $(this).serialize();
setTimeout(function() {
$.ajax({
type: "POST",
url: "../ajax/login.php",
data: str,
success: function(msg){
$("#form-login").ajaxComplete(function(event, request, settings){
$('#login').show();
$('#ajax_loading').hide();
if(msg == 'OK'){
$('#close-dialog-login').hide();
$('a.register').hide();
$('span.separe').hide();
$('#dialog-login').slideDown('slow');
$('#login_response').hide();
$('#form-login').css({
'background-color': '#54ff75',
'border': '1px solid #005a16',
'color': '#004110',
'padding': '5px',
'font-weight': 'bold',
'text-align': 'center',
'line-height': '15px'
});
var login_response = 'Vous êtes bien connecté !' + '<br />' + 'Redirection automatique, veuillez patientez...';
$(this).html(login_response);
setTimeout(function() {
window.location = '../index.php';
}, 3000);
}
else {
var login_response = msg;
$('#login_response').fadeIn();
$('#login_response').html(login_response);
}
});
}
});
}, 2000);
});
[/javascript]
La page login.php appelée par ajax :
<?php
session_start();
require('../include/functions.inc.php');
$pseudo = $_POST['pseudo'];
$pass = $_POST['password'];
if (!empty($pseudo) && !empty($pass))
{
$sql = connect_sql();
$sql = 'SELECT id FROM wa_communaute WHERE pseudo="'.mysql_escape_string($_POST['pseudo']).'" AND pass="'.mysql_escape_string(md5($_POST['password'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 1) {
$data = mysql_fetch_array($req);
$_SESSION['pseudo'] = $_POST['pseudo'];
$_SESSION['id'] = $data['id'];
setcookie("pseudo", $_POST["pseudo"], time() + 90 * 24 * 60 * 60, "/");
echo 'OK';
}
elseif ($nb == 0) {
echo 'Vos identifiants sont incorrects !';
}
mysql_free_result($req);
mysql_close();
}
else {
echo 'Veuillez remplir tous les champs !';
}
?>
Merci pour votre aide