我有问题,我正在做一个表单,当用户单击按钮“ +”时会生成新的输入文本,但是我想反过来说,如果单击按钮“-”,则删除输入文本框。我的按钮“-”是用javascript生成的,并且从未传递给方法.on(我也使用.click进行了测试)。如果我之前在html中执行按钮,则将其传递给.click方法。我该怎么做才能使我的表单中的按钮“-”起作用?
$(document).ready(function () {
var cuentaInputs = $('#contenedorRespuestasAgregar').children().length;
$('#agregar').click(function () {
$('<br class="fila' + cuentaInputs + '" /><label class="fila' + cuentaInputs + '" for="dato' + cuentaInputs + '"> Respuesta ' + cuentaInputs + ':</label><input type="text" name="dato' + cuentaInputs + '" class="fila' + cuentaInputs + '" id="dato' + cuentaInputs + '" placeholder="Inserte Respuesta" />').appendTo('#contenedorRespuestasAgregar');
if (2 == cuentaInputs) {
$('<input type="button" id="eliminame" value="-"/>').insertAfter('#agregar')
}
cuentaInputs++;
});
$('button#eliminame').on("click", function () {
$('.fila' + cuentaInputs).remove();
cuentaInputs--;
console.log("esto es cuentaInput: " + cuentaInputs);
if (1 == cuentaInputs) {
$(this).remove();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Registrar pregunta y respuesta</title>
<link rel="stylesheet" href="css/registroPreguntaStyle.css">
</head>
<body>
<div class="formularioRegistroPregunta">
<h1>Registrar pregunta/respuesta para el formulario</h1>
<form action="ServletRegistroAdminPregunta" method="post">
<label>Introduzca la pregunta:</label>
<input type="text" name="registroPregunta" placeholder="Pregunta">
<br /><br />
<label>Señale el tipo de respuesta:</label>
<input type="radio" name="tipoRespuesta" value="Texto">Texto
<input type="radio" name="tipoRespuesta" value="Radio">Una respuesta
<input type="radio" name="tipoRespuesta" value="Check">Varias respuestas
<br /><br />
<label>Introduzca las respuestas:</label><br /><br />
<!-- Contenedor de cajas agregar respuesta a preguntas nuevas -->
<div id="contenedorRespuestasAgregar">
<label>Respuesta 1:</label><input type="text" id="resgistroRespuestaId1" name="resgistroRespuesta1" class="rgr"
placeholder="Inserte Respuesta" />
</div>
<!-- FIN Contenedor de cajas agregar respuesta a preguntas nuevas -->
<input type="button" id="agregar" value="+" />
<br>
<input type="submit" value="Registrar pregunta">
</form>
<button id="botonVolver" onclick="location.href='endometriosis.jsp'">Volver</button>
</div>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
</body>
</html>
答案 0 :(得分:0)
我尝试调试您的代码,并意识到单击.on
按钮时-
甚至没有运行。
我将您的脚本更改为此,并且它可以正常工作,希望对您有所帮助:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta
http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1"
>
<title>Registrar pregunta y respuesta</title>
<link rel="stylesheet" href="css/registroPreguntaStyle.css">
</head>
<body>
<div class="formularioRegistroPregunta">
<h1>
Registrar pregunta/respuesta para el formulario
</h1>
<form
action="ServletRegistroAdminPregunta"
method="post"
>
<label>Introduzca la pregunta:</label>
<input
type="text"
name="registroPregunta"
placeholder="Pregunta"
>
<br>
<br>
<label>Señale el tipo de respuesta:</label>
<input
type="radio"
name="tipoRespuesta"
value="Texto"
>
Texto
<input
type="radio"
name="tipoRespuesta"
value="Radio"
>
Una respuesta
<input
type="radio"
name="tipoRespuesta"
value="Check"
>
Varias respuestas
<br>
<br>
<label>Introduzca las respuestas:</label>
<br>
<br>
<!-- Contenedor de cajas agregar respuesta a preguntas nuevas -->
<div id="contenedorRespuestasAgregar">
<label>Respuesta 1:</label>
<input
type="text"
id="resgistroRespuestaId1"
name="resgistroRespuesta1"
class="rgr"
placeholder="Inserte Respuesta"
>
</div>
<!-- FIN Contenedor de cajas agregar respuesta a preguntas nuevas -->
<input
type="button"
id="agregar"
value="+"
>
<br>
<input
type="submit"
value="Registrar pregunta"
>
</form>
<button
id="botonVolver"
onclick="location.href='endometriosis.jsp'"
>
Volver
</button>
</div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
var cuentaInputs = $('#contenedorRespuestasAgregar').children().length;
$('#agregar').click(function() {
$('<div class="fila' +cuentaInputs+ '"><label class="fila' +cuentaInputs+'" for="dato' +cuentaInputs+'"> Respuesta ' +cuentaInputs+ ':</label><input type="text" name="dato' +cuentaInputs+ '" class="fila' +cuentaInputs+ '" id="dato' + cuentaInputs +'" placeholder="Inserte Respuesta" /></div>').appendTo('#contenedorRespuestasAgregar');
if (2 == cuentaInputs) {
$('<input onclick="removeEl()" type="button" id="eliminame" value="-"/>').insertAfter('#agregar')
}
cuentaInputs++;
});
});
function removeEl() {
$('#contenedorRespuestasAgregar').children().last().remove();
}
</script>
</body>
</html>