Por defecto que tengo 5 cuadros de texto. Cuando un usuario hace clic en un botón, se debe agregar un cuadro de texto.¿Cómo agrego cuadros de texto dinámicamente en Javascript?
¿Cómo podría hacer esto?
Por defecto que tengo 5 cuadros de texto. Cuando un usuario hace clic en un botón, se debe agregar un cuadro de texto.¿Cómo agrego cuadros de texto dinámicamente en Javascript?
¿Cómo podría hacer esto?
Lo mejor sería adjuntar un evento al onclick
del botón, que establecerá la visibilidad de un div en inline
. Esta es la mejor manera que puedo ver para esto, teniendo en cuenta la flexibilidad y la solidez.
tener un código look here por ejemplo.
<script>
function add()
{
document.getElementById("place").innerHTML="<input type='text' value=''>"
}
</script>
<input type="button" value="clickMe" onClick="add();">
<div id="place"></div>
probar esto
<html>
<head>
<title>Dynamic Form</title>
<script language="javascript" type="text/javascript" >
function changeIt()
{
createTextbox.innerHTML = createTextbox.innerHTML +"<br><input type='text' name='mytext' >"
}
</script>
</head>
<body>
<form name="form">
<input type="button" value="clickHere" onClick="changeIt()">
<div id="createTextbox"></div>
</form>
</body>
</html>
Quien haya votado a favor de esto, no es consciente del impacto del uso de innerHTML. –
-1. Curioseaba con 'innerHTML' cuando un simple' appendChild() 'funcionaría es innecesariamente lenta, y lo que está pasando con su variable' I '? Ni siquiera se acostumbre porque la variable no se expande en la cadena 'innerHTML', por lo que el código HTML se convierte en' name = 'mytext'' seguido de basura que el navegador no puede entender. –
Escribir en innerHTML una vez es suficiente; + = en innerHTML siempre es un error. – bobince
Si reemplaza el innerHTML, se borrarán los valores introducidos previamente, para evitar eso, se puede añadir los elementos de entrada mediante programación:
var input = document.createElement('input');
input.type = "text";
//...
container.appendChild(input);
Comprobar this ejemplo.
respuesta correcta - porque innerHtml reemplazará el contenido del elemento HTML especificado con el valor innerHTML que acaba de definir. –
<script>
function add()
{
var inpt = document.getElementById('input_template');
inpt.parentNode.appendChild(inpt.cloneNode(false));
}
</script>
<input type="button" onclick="add();">
conjunto de id = input_template a uno de los cuadros de texto predefinidos
yo hubiera hecho una función independiente en lugar de en línea, y habría utilizado CSS para mantener los estilos de la misma, pero esto parece como una forma inteligente de hacerlo, y lo hace parecer que iba a funcionar. –
FYI: Un mejor formateo ayudaría a todos. –
Javascript Función
function add() {
//Create an input type dynamically.
var element = document.createElement("input");
//Create Labels
var label = document.createElement("Label");
label.innerHTML = "New Label";
//Assign different attributes to the element.
element.setAttribute("type", "text");
element.setAttribute("value", "");
element.setAttribute("name", "Test Name");
element.setAttribute("style", "width:200px");
label.setAttribute("style", "font-weight:normal");
// 'foobar' is the div id, where new fields are to be added
var foo = document.getElementById("fooBar");
//Append the element in page (in span).
foo.appendChild(label);
foo.appendChild(element);
}
Html parte,
<button id="button" value="Add" onClick:"javascript:add();">
Y, su hecho!
Aquí puede establecer atributos para el cuadro de texto. tales como propiedades CSS, valores, id, etc. –
<!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<p>My first paragraph.</p>
<button type="button" onclick="myFunction()">Click me!</button>
<script>
var count =0;
function myFunction() {
count++
document.write('Lable1');
document.write('<input type="text" name="one+count">');
document.write('Lable2');
document.write('<input type="text" name="two+count">');
document.write('Lable3');
document.write('<input type="text" name="three+count">');
document.write('Lable4');
document.write('<input type="text" name="four+count">');
document.write(count);
}
</script>
</body>
</html>
Quien haya votado a favor de esto, no es consciente del impacto del uso de innerHTML. –