Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde;
Eu tenho o código abaixo que faz a validação do meu formulário. O que eu quero é o seguinte, no script jquery se a pessoa deixa o campo em branco e tenta fazer o submit, ele acusa que houve um erro. Pois o campo não pode ficar em branco.
<title>Documento sem título</title>
<script language="javascript">
$d = jQuery.noConflict();
$d(function(){
$d('#formFecha').submit(function(){
var qtde = $d("#qtde").val();
var qtdereal = $d("#qtdereal").val();
if (qtde == "")
{
prompt("A quantidade não pode ficar em branco");
$d("#qtde").focus();
$d("#qtde").val("");
return false;
}
if (qtde < qtdereal)
{
prompt("A quantidade esta menor");
$d("#qtde").focus();
$d("#qtde").val("");
return false;
}
if (qtde > qtdereal){
prompt("A quantidade esta maior");
$d("#qtde").focus();
$d("#qtde").val("");
return false;
}
if (qtde = qtdereal){
$d("#qtde").attr("readonly","false")
$d("#confirmar").css("display","none");
$d("#fim").show();
$d("#fim").focus();
$d("#formFecha").submit();
return false;
}
})
})
</script>
E a segunda e terceira validação é, existe um input type=hidden com um valor, imaginamos que esse valor é 5. O valor digitado tem que ser igual o valor do input type=hidden. Se for diferente, pra maior ou menor o sistema não permite fazer o submit.
Até ai eu consegui beleza,
Agora que vem o problema, o sistema mostra o erro dizendo que há divergência no valor. O que eu quero é, na 1ª e na 2ª ele mostra a mensagem dizendo que há divergência de valor. Na 3ª tentativa se for divergente, abrir um outro campo pra ele informar uma senha aceitando o valor divergente.
Poderia ser um prompt("Digite uma senha") do JQUERY mesmo. Só que o campo pra digitar a senha senha de password. E se a senha fosse a correta quando clicar no OK o sistema fazer o SUBMIT no formulário.
Alguém poderia me da um help nessa situação? Se eu conseguir resolver isso... Finalizo boa parte do sistema.
Desde já, obrigado!!!
Att;
Gilberto Jr>
Em 2017-6-9 at 15:23, Gilberto Jr disse:
if (qtde == "")
Isso ai vai falhar em caso de espaços " "
Como você está utilizando jQuery, ele possui *trim e* navegadores modernos também
Podemos estender o objeto String dessa forma:
if (typeof String.prototype.trim !== "function") {
String.prototype.trim = function() {
return jQuery.trim(this);
}
};
Depois disso você poderá eliminar espaços em branco de qualquer *string*:
var qtde = $d("#qtde").val().trim(); // <- utilizando trim
Ao invés de você testar (*qtde == ""*), você pode utilizar *length*, o JavaScript vai converter zero(0) para booleano, ou apenas* !qtde*, o JS vai converter string vazia em booleano false.
if (!qtde.length) {
/* [...] */
}
// ou
if (!qtde) {
/* [...] */
}>
Em 2017-6-9 at 16:43, Marlon Pacheco disse:
Buenas.
Uma sugestão seria utilizar a SessionStorage para armazenar a contagem de erros e limpar o valor em caso de Submit.
Uma validação em cima do valor dos erros pode executar a inclusão do campo de senha.
Acho q iniciando com isso, facilita bastante.
Buenas @Marlon Pacheco, essa sua sugestão foi boa. Mas como que eu faço para incrementar ela dentro do meu código?
Essa é minha duvida, de como colocar o SessionStorage dentro do meu código de validação, e caso seja maior que que 2 a quantidade de erro, abrir um tipo um outro formulário onde tem somente o campo para a pessoa digitar a senha.
Att;
Gilberto>
Em 2017-6-10 at 19:49, Don Benatti disse:
Isso ai vai falhar em caso de espaços " "
Como você está utilizando jQuery, ele possui trim e navegadores modernos também
Podemos estender o objeto String dessa forma:
if (typeof String.prototype.trim !== "function") {
String.prototype.trim = function() {
return jQuery.trim(this);
}
};
Depois disso você poderá eliminar espaços em branco de qualquer *string*:
var qtde = $d("#qtde").val().trim(); // <- utilizando trim
Ao invés de você testar (*qtde == ""*), você pode utilizar *length*, o JavaScript vai converter zero(0) para booleano, ou apenas* !qtde*, o JS vai converter string vazia em booleano false.
if (!qtde.length) {
/* [...] */
}
// ou
if (!qtde) {
/* [...] */
}
Bom dia @Don Benatti,
Desculpa a pergunta ser meio boba ou idiota, como eu coloco esse código dentro do meu script de validação.
>
Em 2017-6-10 at 19:49, Don Benatti disse:
if (typeof String.prototype.trim !== "function") { String.prototype.trim = function() { return jQuery.trim(this); } };
É que nessa hora, me mais tornei leigo ainda.
Att;
Gilberto JrTchê,
Dá uma olhada no exemplo
Qualquer coisa, prende o grito.
>
3 horas atrás, Marlon Pacheco disse:
Tchê,
Dá uma olhada no exemplo
Qualquer coisa, prende o grito.
@Marlon Pacheco, deu certo..... estamos evoluindo.....
Fiz dessa forma o meu código...
<script type="text/javascript">
$z = jQuery.noConflict();
$z(document).ready(function(){
$z('#senha').hide();
var qtde = $z("#qtde").val();
var qtdereal = $z("#qtdereal").val();
var valor = $z('#valor').val();
$z('#confirmar').click(function(){
valor = parseInt(valor)+1;
sessionStorage.setItem("contador", valor);
if(valor == 3 && qtde != "") {
$z('#senha').show();
};
});
$z('#formFecha').submit(function(){
valor = parseInt(valor)+1;
sessionStorage.setItem("contador", valor);
if(valor == 3 && qtde != "") {
$z('#senha').show();
};
});
$z('#confirmar').keypress(function(){
valor = parseInt(valor)+1;
sessionStorage.setItem("contador", valor);
if(valor == 3 && qtde != "") {
$z('#senha').show();
};
});
});
</script>
Mas agora eu quero que o script seja executado quando o valor for igual a 3 como esta no script, e a quantidade for diferente de "".
Tentei fazer da forma acima mas não funcionou, se o erro for igual a 3 e a variavel diferente de "" ele não executa o
$z('#senha').show();
Se eu deixar o código sem o
&& qtde != ""
funciona. Porem funciona se a pessoal deixar o campo em branco.
poderia me da mais essa força?
Att;
Gilberto JrAtualizei o Codepen. Usei o código abaixo pra verificar o número de erros e se o valor é um número
if(valor == 3 && !isNaN(valor) ) {
$('#senha').show();
};>
56 minutos atrás, Marlon Pacheco disse:
Atualizei o Codepen. Usei o código abaixo pra verificar o número de erros e se o valor é um número
if(valor == 3 && !isNaN(valor) ) {
$('#senha').show();
};
Então, se eu deixar o código assim
if (valor == 3){
$('#senha').show();
}
funciona.
Mas eu quero verificar outra variável também. essa outra variável não pode esta em branco.
Então o código estou fazendo assim.
if (valor == 3 && $('#qdtde').val() != "" ){
$('#senha').show();
}
O input id=qdtde não pode esta em branco para executar e mostrar o input id=senha
Att;
Gilberto JrEntão,
Usei como exemplo lá, mas tenta com
&& !IsNaN($('#qdtde').val()))
!IsNaN verificar se o valor do campo Não é um valor Não Numérico (essa dá um nó, mas é isso).
@Marlon Pacheco fiz o código dessa forma, e não vai....
$z('#confirmar').click(function(){
valor = parseInt(valor)+1;
sessionStorage.setItem("contador", valor);
if(valor == 3 && !isNaN($z('#qtde').val())) {
$z('#senha').show();
};
});
Tem algum erro besta que eu não estou conseguindo encontrar rsrs
Att;
Gilberto Jr
Buenas.
Uma sugestão seria utilizar a SessionStorage para armazenar a contagem de erros e limpar o valor em caso de Submit.
Uma validação em cima do valor dos erros pode executar a inclusão do campo de senha.
Acho q iniciando com isso, facilita bastante.