Foros del Web » Programando para Internet » Javascript »

No mas de un punto en un campo de texto

Estas en el tema de No mas de un punto en un campo de texto en el foro de Javascript en Foros del Web. Hola a todos Estoy tratando de no haya mas de un punto en un campo de texto. He probado con esto pero no me ha ...
  #1 (permalink)  
Antiguo 16/07/2006, 06:49
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 11 meses
Puntos: 15
No mas de un punto en un campo de texto

Hola a todos

Estoy tratando de no haya mas de un punto en un campo de texto.

He probado con esto pero no me ha funcionado
function return validar()
{
alert(document.formularioEnvio.Ancho1.value.indexO f('.'));
}
<input name="Ancho1" id="Ancho1" type="text" onkeypress="return validar()">

.....Este alert solo me pone "-1" cuando no hay punto; y "1" cuando hay uno o varios puntos.
.

Yo necesitaria que me diga "3" si hay 3 puntos y "2" si hay dos, por ejemplo.

algun idea
  #2 (permalink)  
Antiguo 16/07/2006, 07:44
 
Fecha de Ingreso: julio-2005
Mensajes: 127
Antigüedad: 19 años, 4 meses
Puntos: 0
Eso te está diciendo la posición en la que ocurre el primer punto nada más.

Para averiguar los demás tendrías que recorrer todo el valor.
  #3 (permalink)  
Antiguo 16/07/2006, 08:06
 
Fecha de Ingreso: julio-2005
Mensajes: 127
Antigüedad: 19 años, 4 meses
Puntos: 0
Aquí tienes un pequeño script que cuenta el número de ocurrencias de un caracter en un String:

Código:
count = 0;
pos = str.indexOf("x");
while ( pos != -1 ) {
   count++;
   pos = str.indexOf("x",pos+1);
}
(Sacado de http://developer.mozilla.org/en/docs...er_in_a_string)
  #4 (permalink)  
Antiguo 16/07/2006, 10:13
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 11 meses
Puntos: 15
gracias joaquin.
pero la verdad es que no se como aplicarlo para que el usuario no pueda ingresar mas de UN punto en un campo de texto.
No me darias una idea...
  #5 (permalink)  
Antiguo 16/07/2006, 10:51
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 1 mes
Puntos: 4
una de las opciones siería así:
Cita:
<html>
<head>
<script>
function validar(v){
if(v.value.indexOf(".")!=v.value.lastIndexOf(".")) {
alert("solo puedes ingresar un solo punto");
v.value=v.value.slice(0,-1);
}
}
</script></head>
<body>
<form name="formularioEnvio">
<input name="Ancho1" id="Ancho1" type="text" onkeyup="validar(this)">
</form>
</body>
</html>
fijate que tenes que cambiar el "onkeypress" por "onkeyup".

saludos
__________________
by Capitán Buscapina
.
  #6 (permalink)  
Antiguo 16/07/2006, 13:44
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 6 meses
Puntos: 2
Este código impide meter más de un punto.
Código HTML:
<html>
<head>
<script>
function validar(e,valor){
  var key = window.event ? e.keyCode : e.which;
    var keychar = String.fromCharCode(key);
    if (valor.indexOf(".")!=-1 && keychar=="."){
    	return false;
  	}else{
    	return true;
  	}		
}
</script>
</head>
<body>
<form>
<input name="campo" type="text" onKeyPress="return validar(event,this.value);">
</form>
</body>
</html> 
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #7 (permalink)  
Antiguo 16/07/2006, 14:18
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 11 meses
Puntos: 15
Justo lo que necesitaba.
  #8 (permalink)  
Antiguo 19/06/2012, 16:00
Avatar de jgabrielsinner10  
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: No mas de un punto en un campo de texto

Código:
<SCRIPT language=Javascript>
  <!--
  function isNumberKey(evt, valor)
  {
	 var charCode = (evt.which) ? evt.which : event.keyCode;
	 var keychar = String.fromCharCode(charCode);
	 var valid = valor.split(".");
	 
	 if ((charCode > 31 && (charCode < 48 || charCode > 57)) && (keychar!="." || valid.length>1)){
			return false;
	 }

	 return true;
  }
  //-->
</SCRIPT>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:39.