God9ps Posted November 21, 2015 at 04:23 PM Report Share #589938 Posted November 21, 2015 at 04:23 PM Boas... Tenho um formulário de registo no qual faço a validação do nome de utilizador em tempo real com Jquery. À medida que vamos preenchendo os campos vamos fazendo a validação e caso seja correcta mudamos o Focus() para o campo seguinte, caso seja incorrecta o focus() mantém-se no campo actual até ser introduzido correctamente. Funciona bem em todos os campo com exceção do campo "utilizador" que para além de validar o campo, verifica na bd se o utilizador já existe. Funciona corretamente, só que quando encontra que o utilizador já existe na BD pretendo que o focus() se mantenha no campo e salta sempre para o campo seguinte. Já estou de olhos em bico e não consigo resolver... deixo o código. javascript $(document).ready(function(){ $("#utilizador").blur(function() { $('#status').html('<img src="http://127.0.0.1/EasyStudy/images/loading.gif" align="absmiddle"> Checking availability...'); var usr = $("#utilizador").val(); if (usr == ''){ $("#utilizador").focus(); $('#status').html('Preenchimento Obrigatorio'); }else{ $.get("registo.php", {utilizador: usr}, function(resposta){ $("#status").html(resposta); }); } }); }); registo.php if(isset($_REQUEST['utilizador'])) { $username = $_REQUEST['utilizador']; // echo $username; $sql_check = mysqli_query($con,"SELECT * FROM login WHERE utilizador ='".$username."'") or die(mysqli_error()); if(mysqli_num_rows($sql_check)) { echo "Utilizador em uso!"; echo "<script>$('#utilizador').focus();return false;</script>"; die(); } else { echo 'OK'; die(); } } formulario <tr> <td> <label>Utilizador</label> <br> <input id="utilizador" name="utilizador" type="text" maxlength="12" size="40" /><span id="status" class="erro"></span> </td> </tr> <tr> <td> <label>Password</label> <br> <input id="senha" name="senha" type="password" maxlength="12" size="40" /> <span id="statussenha" class="erro"></span> </td> </tr> Alguém que me ajude por favor... Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted November 21, 2015 at 06:40 PM Report Share #589946 Posted November 21, 2015 at 06:40 PM estás mesmo a dizer que estás a alterar o focus programaticamente, sem ser resultado de clicar num botão de envio ? consegues dizer um único site decente que faça isso ? é que se eu visse algo a fazer algo que eu não mandei fazer, a primeira coisa que eu faria seria "ir embora" segundo, a minha recomendação é ter o PHP a retornar JSON que será processado pelo javascript e tomar a acção de acordo com a informação respondida pelo servidor IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
God9ps Posted November 21, 2015 at 11:37 PM Author Report Share #589955 Posted November 21, 2015 at 11:37 PM A ideia é mesmo inserir um utilizador que esteja disponivel... tipo, para quê deixar a pessoa inserir um user que não esteja disponivel? A ideia de manter o foco nesse campo é inerir um user válido e prosseguir com o registo. Faz ideia do porquê de ele não manter o foco no campo do utilizador? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted November 21, 2015 at 11:58 PM Report Share #589957 Posted November 21, 2015 at 11:58 PM A ideia é mesmo inserir um utilizador que esteja disponivel... tipo, para quê deixar a pessoa inserir um user que não esteja disponivel? A ideia de manter o foco nesse campo é inerir um user válido e prosseguir com o registo. continua a ser algo que no meu ponto de vista não faz sentido Faz ideia do porquê de ele não manter o foco no campo do utilizador? faço $(document).ready(function(){ $("#utilizador").blur(function() { // estás a fazer a verificação quando o elemento PERDE o focus $('#status').html('<img src="http://127.0.0.1/EasyStudy/images/loading.gif" align="absmiddle"> Checking availability...'); var usr = $("#utilizador").val(); if (usr == ''){ $("#utilizador").focus(); // retornas o focus porque os dados do campo foram invalidados $('#status').html('Preenchimento Obrigatorio'); }else{ $.get("registo.php", {utilizador: usr}, function(resposta){ $("#status").html(resposta); // isto é erro ou não ? se é erro, onde está a "recuperação" de focus por parte do elemento ? }); } }); }); como disse anteriormente : a minha recomendação é ter o PHP a retornar JSON que será processado pelo javascript e tomar a acção de acordo com a informação respondida pelo servidor IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now