Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cafdesigner

Apenas números e virgulas

Recommended Posts

Pessoal testei usar este jspara limitar o uso de numeros em um campo text mas ele nao esta funcionando:function ver_tecla(event){var event = getkey(event);if ((event.keyCode < 48) || (event.keyCode > 57))return false;}Uso assim: onkeypress="return ver_tecla(event)"No FF da este erro:Erro: getkey is not definedArquivo-fonte: arquivo.phpLinha: 38Queria saber tambem como posso liberar apenas virgula tbm, entao seria apenas numeros e virgulas permitidos a digitar.Irei usar em varios campos num mesmo form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei usar o js da url que me passou assim:function verificar_valor(event){ var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; var caract = new RegExp(/^\d+(,\d+)?$/i); var caract = caract.test(String.fromCharCode(keyCode)); var tecla = event.keyCode; if(!caract && tecla != 8){ alert("Caracter inválido: " +String.fromCharCode(keyCode)); keyCode=0; return false; }}Ai sao varios campos que uso assim:onkeypress="return verificar_valor(event)"Só que ele só ta funcionando no primeiro campo, nos demais ele avisa sobre o caracter invalido, mas deixa eu escrver ele, e a virgula ele nao ta deixando eu colocar ela em nenhum campo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só inserir a função getKey. Você a chama mas ela não existe.

function getKey(event) {	return event?(event.keyCode?event.keyCode:(event.which?event.which:event.charCode)):null;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

tanto faz antes ou depois da sua função ver_tecla =P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei antes la mas deu na mesma.

 

Tipo eu achei um outro js que se adequa melhor ao meu sistema, ams ele ta com o mesmo erro, tipo sao varios campos, cada um tem seu nome, e só funciona no primeiro campo, veja o js:

 

function verificar_valor(e,args)	{				if (document.all){var evt=event.keyCode;} // caso seja IE		else{var evt = e.charCode;}	// do contrário deve ser Mozilla		var valid_chars = '0123456789'+args;	// criando a lista de teclas permitidas		var chr= String.fromCharCode(evt);	// pegando a tecla digitada		if (valid_chars.indexOf(chr)>-1 ){return true;}	// se a tecla estiver na lista de permissão permite-a		// para permitir teclas como <BACKSPACE> adicionamos uma permissão para 		// códigos de tecla menores que 09 por exemplo (geralmente uso menores que 20)		if (valid_chars.indexOf(chr)>-1 || evt < 20){return true;}	// se a tecla estiver na lista de permissão permite-a		return false;	// do contrário nega	}

Com este JS ai eu posso especificar o que eu quero permitir ai fica melhor para min:

var valid_chars = '0123456789'+args; // criando a lista de teclas permitidas

 

Ai eu uso assim:

onkeypress="return verificar_valor(event,'')"

ou

onkeypress="return verificar_valor(event,',-@')"

 

Porque sera que só funciona no primeiro campo do formulario?

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça uma busca no seu codigo por getKey e remova pois não faz sentido este outro script acontecer o mesmo erro já que ele não chama a função getKey.Ou seja, está acontecendo o erro é em outro lugar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fleury eu removi todos os outros JS da pagina e mesmo assim continua o erro.A funçao:function getKey(event) { return event?(event.keyCode?event.keyCode:(event.which?event.which:event.charCode)):null;}Voce disse que eu posso colocar tanto antes quanto depois da minha funçao certo, mas eu tenho que chamar ela tambem no input?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, veja bem,a função getKey, nada mais é, uma função que captura o evento do teclado e converte em um número que indica qual tecla foi pressionada. É uma função de auxilio.O primeiro script que você me mostrou, fazia o uso de getKey. Por isso, era necessário que você incluísse esta função no seu código para que a sua função rodasse beleza.Já na segunda função que você apresentou aqui, ela não faz mais o uso da função getKey, e portanto, você pode remover todos os indícios de getKey do seu código, até mesmo a função getKey que eu lhe passei para que assim evite erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao eu removi mas o erro nao quer me largar :)Tipo talvez seja mais facil eu dizer o que quero, preciso de um JS que me permita digitar apenas numeros e/ou traços no input.Ja pequisei na net achei varios mais nenhum funciona comigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro que continua dando é Erro: getkey is not definedArquivo-fonte: arquivo.phpLinha: 38???

Compartilhar este post


Link para o post
Compartilhar em outros sites

cafdesigner testa esse script pra ver se te ajuda:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"	  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Restrição</title><script type="text/javascript">//<![CDATA[addEvent = function(o, e, f, s){	var r = o[r = "_" + (e = "on" + e)] = o[r] || (o[e] ? [[o[e], o]] : []), a, c, d;	r[r.length] = [f, s || o], o[e] = function(e){		try{			(e = e || event).preventDefault || (e.preventDefault = function(){e.returnValue = false;});			e.stopPropagation || (e.stopPropagation = function(){e.cancelBubble = true;});			e.target || (e.target = e.srcElement || null);			e.key = (e.which + 1 || e.keyCode + 1) - 1 || 0;		}catch(f){}		for(d = 1, f = r.length; f; r[--f] && (a = r[f][0], o = r[f][1], a.call ? c = a.call(o, e) : (o._ = a, c = o._(e), o._ = null), d &= c !== false));		return e = null, !!d;	}};removeEvent = function(o, e, f, s){	for(var i = (e = o["_on" + e] || []).length; i;)		if(e[--i] && e[i][0] == f && (s || o) == e[i][1])			return delete e[i];	return false;};/**************************************** Restrict Class v1.0				** Autor: Carlos R. L. Rodrigues	  ****************************************/Restrict = function(form){	this.form = form, this.field = {}, this.mask = {};}Restrict.field = Restrict.inst = Restrict.c = null;Restrict.prototype.start = function(){	var $, __ = document.forms[this.form], s, x, j, c, sp, o = this, l;	var p = {".":/./, w:/\w/, W:/\W/, d:/\d/, D:/\D/, s:/\s/, a:/[\xc0-\xff]/, A:/[^\xc0-\xff]/};	for(var _ in $ = this.field)		if(/text|textarea|password/i.test(__[_].type)){			x = $[_].split(""), c = j = 0, sp, s = [[],[]];			for(var i = 0, l = x.length; i < l; i++)				if(x[i] == "\\" || sp){					if(sp = !sp) continue;					s[j][c++] = p[x[i]] || x[i];				}				else if(x[i] == "^") c = (j = 1) - 1;				else s[j][c++] = x[i];			o.mask[__[_].name] && (__[_].maxLength = o.mask[__[_].name].length);			__[_].pt = s, addEvent(__[_], "keydown", function(e){				var r = Restrict.field = e.target;				if(!o.mask[r.name]) return;				r.l = r.value.length, Restrict.inst = o; Restrict.c = e.key;				setTimeout(o.onchanged, r.e = 1);			});			addEvent(__[_], "keyup", function(e){				(Restrict.field = e.target).e = 0;			});			addEvent(__[_], "keypress", function(e){				o.restrict(e) || e.preventDefault();				var r = Restrict.field = e.target;				if(!o.mask[r.name]) return;				if(!r.e){					r.l = r.value.length, Restrict.inst = o, Restrict.c = e.key || 0;					setTimeout(o.onchanged, 1);				}			});		}}Restrict.prototype.restrict = function(e){	var o, c = e.key, n = (o = e.target).name, r;	var has = function(c, r){		for(var i = r.length; i--;)			if((r[i] instanceof RegExp && r[i].test(c)) || r[i] == c) return true;		return false;	}	var inRange = function(c){		return has(c, o.pt[0]) && !has(c, o.pt[1]);	}	return (c < 30 || inRange(String.fromCharCode(c))) ?		(this.onKeyAccept && this.onKeyAccept(o, c), !0) :		(this.onKeyRefuse && this.onKeyRefuse(o, c),  !1);}Restrict.prototype.onchanged = function(){	var ob = Restrict, si, moz = false, o = ob.field, t, lt = (t = o.value).length, m = ob.inst.mask[o.name];	if(o.l == o.value.length) return;	if(si = o.selectionStart) moz = true;	else if(o.createTextRange){		var obj = document.selection.createRange(), r = o.createTextRange();		if(!r.setEndPoint) return false;		r.setEndPoint("EndToStart", obj); si = r.text.length;	}	else return false;	for(var i in m = m.split(""))		if(m[i] != "#")			t = t.replace(m[i] == "\\" ? m[++i] : m[i], "");	var j = 0, h = "", l = m.length, ini = si == 1, t = t.split("");	for(i = 0; i < l; i++)		if(m[i] != "#"){			if(m[i] == "\\" && (h += m[++i])) continue;			h += m[i], i + 1 == l && (t[j - 1] += h, h = "");		}		else{			if(!t[j] && !(h = "")) break;			(t[j] = h + t[j++]) && (h = "");		}	o.value = o.maxLength > -1 && o.maxLength < (t = t.join("")).length ? t.slice(0, o.maxLength) : t;	if(ob.c && ob.c != 46 && ob.c != 8){		if(si != lt){			while(m[si] != "#" && m[si]) si++;			ini && m[0] != "#" && si++;		}		else si = o.value.length;	}	!moz ? (obj.move("character", si), obj.select()) : o.setSelectionRange(si, si);}//]]></script><form id="form" action=" " method="post">	<input name="a" maxlength="10" type="text"><br>	Restrição = (\\d/) Somente números e "/"<br>Máscara = ##/##/####<br><br>	<input name="b" maxlength="14" type="text"><br>	Restrição = (\\d.-) Somente números, ponto e hífen<br>Máscara = ###.###.###-##<br><br>	<textarea name="c" cols="4" rows="5" style="width: 300px; height: 120px;"></textarea><br>	Restrição = (a\\^bc) Somente os caracteres "a", "b", "c" e "^"<br><br>	<input name="d" maxlength="10" type="text"><br>	Restrição = (\\d/) Somente números e ","<br></form><script type="text/javascript">//<![CDATA[	var r = new Restrict("form");	r.field.a = "\\d/";	r.mask.a = "##/##/####";	r.field.b = "\\d.-";	r.mask.b = "###.###.###-##";	r.field.c = "a\\^bc";	r.field.d = "\\d,";	r.onKeyRefuse = function(o, k){		o.style.backgroundColor = "#fdc";	}	r.onKeyAccept = function(o, k){		if(k > 30)			o.style.backgroundColor = "transparent";	}	r.start();//]]></script></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

rapaz fui tentar de novo com meu script ai do post 7 ai vi que eu tinha colocado no primeiro campo:onkeypress e nos demais onkeydown entao mudei tudo pra onkeypress e funcionou acho que era isso, só funciona com o onkeypress vlw ai ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

rapaz fui tentar de novo com meu script ai do post 7 ai vi que eu tinha colocado no primeiro campo:onkeypress e nos demais onkeydown entao mudei tudo pra onkeypress e funcionou acho que era isso, só funciona com o onkeypress vlw ai ;)

IE é uma m***** mesmo neh rsss, pode testar no firefox que vai com onkeydown

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.