Eu tenho um textArea e ele não aceita o comando maxlength.
Então eu preciso BLOQUEAR a digitação do usuario quando ele inserir 100 caracteres.
Pq ele não esta bloqueando e daí estoura o limite no banco e dá pau.
Alguem me ajuda nessa função de JS para bloquear quando os caracteres chegarem a 100???
Como é que você insere dados direto no banco, sem fazer nenhuma validação? Que coisa…
Se você está fazendo isso, e se você está usando “UPDATE” ou “INSERT” sem ser via PreparedStatement - ou seja, concatenando strings e montando o comando SQL no braço , posso até entrar com o seguinte comando SQL na text area (obviamente aqui estou supondo que seu banco usa ‘;’ para separar comandos SQL):
e ele iria fritar alguma tabela importante sua… Entre com o seu comando preferido (tipo TRUNCATE TABLE ou outras coisas mais “light”.)
<td align="left" class="txtPagina">Observação<br />
<textarea onkeypress="javascript: return limitaCaracteres('obs',295)" id="obs" class="formulario" rows="3" cols="35" style="width:315px;" name="planoDeContas.obs">${planoDeContas.obs}</textarea>
</td>
/**
* Limita aquantidade de caracteres de um elemento, o qual seu ID é recebido no parámetro
* @param {Object} id - é o ID do elemento que está sendo usado
* @param {Object} numCaracteres - número de caracteres máximo permitido
*/
function limitaCaracteres(id, numCaracteres){
valor = document.getElementById(id).value;
if(valor.length>=numCaracteres){
//alert("mais que "+numCaracteres);
return false;
}else{
return true;
}
}
<textarea onkeypress="javascript: return limitaCaracteres('obs',295, event)" id="obs" class="formulario" rows="3" cols="35" style="width:315px;" name="planoDeContas.obs">${planoDeContas.obs}</textarea>
/**
* Limita aquantidade de caracteres de um elemento, o qual seu ID é recebido no parámetro
* @param {Object} id - é o ID do elemento que está sendo usado
* @param {Object} numCaracteres - número de caracteres máximo permitido
*/
function limitaCaracteres(id, numCaracteres, e){
valor = document.getElementById(id).value;
if(valor.length>=numCaracteres){
//alert("mais que "+numCaracteres);
var whichCode = (window.Event) ? e.which : e.keyCode;
if(whichCode == 8 || whichCode == 0)return true; // aceita Tab e Back Space
return false;
}else{
return true;
}
}
Limita aquantidade de caracteres de um elemento, o qual seu ID é recebido no parámetro
@param {Object} id - é o ID do elemento que está sendo usado
@param {Object} numCaracteres - número de caracteres máximo permitido
*/
function limitaCaracteres(id, numCaracteres, e){
valor = document.getElementById(id).value;
if(valor.length>=numCaracteres){
//alert("mais que "+numCaracteres);
var whichCode = (window.Event) ? e.which : e.keyCode;
if(whichCode == 8 || whichCode == 0)return true; // aceita Tab e Back Space
return false;
}else{
return true;
}
}
[/code][/quote]
nao sei se eu deveria ressucitar o topico,mas irei.
bem, esse codigo funciona se a pessoa for digitando digito por digito, mas se por algum acaso ele digita o texto fora da area e cola um texto maior, o codigo vai furar.
para o codigo funcionar corretamente seria necessario conseguir o texto que a pessoa esta tentando inserir. verificando se o document.getElementById(id).value + ‘novo texto’ eh maior que o permitido
como faco para pegar o texto que esta sendo inserido no evento.
Tipo eu sei como pegar o caractere que ele digitou, mas isso nao vai adiantar muito, se o cara apertar CRTL + V eu pegar o ‘V’ preciso pegar o texto que ele esta colando. Alguem sabe como fazer isso???