Hola, una pregunta.
Tengo 3 input: Apellido, Nombre, Nombre Apellido Madre, y un Select para elegir el estado civil actual (si es caado, soltero, viudo, divorciado).
El input de Apellido, me convierte a mayúscula lo que se introduce, lo que no consigo es como hacer, si la persona tiene 2,3 o 4 nombres, cuando complete estos datos en el input de Nombres, me pase a mayúscula la 1ra letra de cada palabra.
El resultado final seria que me concatene estos datos en la caja TexTarea, ahí recién necesito estas correcciones, separados por una coma
Ejemplo:
input1: correa input2: jose maria input3: maria rodriguez select: separado
Luego de presionar boton, los campos se concatenan y pasan a un texbox y a un textarea :
El Señor Jose Maria CORREA, de estado civil separado, es hijo de Maria Rodriguez.
-----------------------------------------------------------------------------------------
Si la persona no completa los campos anda. Cuando le doy click en boton PASAR AL TEXTAREA, me pone la coma de separacion, entonces deberia porner una condicion IF ELSE,
si el campo APELLIDO no esta vacio entonces concatene y agregue la un texto y la coma +"," +
if campo NOMBRE no esta vacio entonces concatene. y agregue la coma.. y asi sucesivamente hasta concatenar todos los campos. es correcto?
me olvide de poenr el codigo
<html>
<head>
<title> Proyecto</title>
</head>
<body>
<script type="text/javascript">
// Esto concatena los 3 inputs
function concatenate()
{
concateText = document.getElementById("NomApe").value + ", "
+ document.getElementById("Nom").value + ", "
+ document.getElementById("madre").value;
document.getElementById("concateForm").value = concateText;
}
// Esto concatena en textarea
function copiarDatos(){
var VarApee = document.getElementById("NomApe").value;
var VarNomm = document.getElementById("Nom").value;
var VarMadree = document.getElementById("madre").value;
// aca podria poner un If, preguntando?
var texto = VarApee + ", " + VarNomm + ", " + VarMadree;
document.getElementById("textToEncode").innerHTML = texto;
}
// pasa a mayuscula el APELLIDO
function upperCase() {
var x=document.getElementById("NomApe").value;
document.getElementById("NomApe").value=x.toUpperCase();
}
</script>
<h1>PASA TODAS LS PALABRAS A MAYUSCULA</h1>
<table> <tr> <td>
Apellido/s <input type="text" id="NomApe" onblur="upperCase()">
</td> </tr> <tr> <td>
Nombre/s <input type="text" id="Nom" >
</td> </tr> <tr> <td>
Madre <input type="text" id="madre">
</td> </tr> <tr> <td>
</td> </tr> <tr> <td>
<button type="button" onclick="concatenate()">Pasar al la caja </button>
<input type="text" name="textResult" id="concateForm" rows="4" cols="40">
</td> </tr> <tr> <td>
estado civil
<select name="estado" id="estado">
<option value="">Seleccione...</option>
<option value="1">casado</option>
<option value="2">soltero</option>
<option value="3">divorciado</option>
</select></td>
</table>
<button type="button" id="boton" onClick="copiarDatos()"> Pasar al TexTarea</button>
<textarea id="textToEncode" style="width: 100%; height: 200px;">
</body>
</html>
Eso de convertir la primera letra de una palabra a mayúsculas es algo frecuente: debes tomar el primer carácter (con ".charAt(0)") y convertirlo a mayúsculas (con ".toUpperCase()") y luego concatenar el resto de la cadena (que puedes obtener con "substring(1)":
function primeraMayuscula(texto) {
return texto.charAt(0).toUpperCase() + texto.substring(1);
}
Si quieres mayúsculas en cada palabra, deberías hacer primero un ".split()", para obtener cada palabra, repetir ese proceso, y terminar con un ".join":
function mayusculasTitulo(texto) {
var palabras = texto.toLowerCase().split(' ');
for (var i = 0; i < palabras.length; i++) {
palabras[i] = palabras[i].charAt(0).toUpperCase() + palabras[i].substring(1);
}
return palabras.join(' ');
}
Eso debería servir...
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)