情境
我有一个包含长表单的 java
JSP 视图。一切都很顺利,我可以通过在任何输入字段中按下回车键或使用提交按钮来提交表单。
新需求
在某个部分中,我必须添加按钮来替换一些 <label>
以允许编辑,这并不难。
我尝试过的方法
这个视图的这个部分是动态创建的,因为行数取决于用户输入的数据。此部分创建每一行:
resultadoHTML += " <div class='row col-lg-12 col-xs-12' style='margin-bottom: 30px;text-align: left;'>";
resultadoHTML += " <label class='col-lg-3 col-xs-12 control-label' >" + nomCalidad + "</label>";
resultadoHTML += " <div class='col-lg-5 col-xs-8'>";
resultadoHTML += " <input type='text' class='form-control' value='"+valor+"' id='calidadCatId' maxlength='30' required='true' />";
resultadoHTML += " </div>";
resultadoHTML += " <div class='col-lg-2 col-xs-3' id='ccc" + parts[1] + "'>";
resultadoHTML += " <label class='control-label' id='unidadCCC" + parts[1] + "' >" + parts[4] + "</label>";
resultadoHTML += " </div>";
resultadoHTML += " <div class='col-lg-2 col-xs-1'>";
resultadoHTML += " <button id='eCCC" + parts[1] + "' class='btn btn-default'><span class='glyphicon glyphicon-plus-sign'></span></button>";
resultadoHTML += " </div>";
resultadoHTML += " </div>";
<button id="eCCC5" class="btn btn-default"><span class="glyphicon glyphicon-plus-sign"></span></button>
问题
当我使用 onclick
在新按钮中定义一个函数时,这个函数会被调用,但是之后,提交按钮的 click
事件也会被调用,我不知道为什么...但是你可以看到代码中,即使我没有在按钮中捕获任何事件,表单的 click
事件也会被调用。
其他信息
表单/按钮定义
<form:form class="form-horizontal" role="form" method="post"
commandName="contratMercan" action="../contratos/contratosubmit"
name="formulario" id="edicionContrato">
<button type="submit" class="btn btn-primary" id="edicionContrato">
<spring:message ... /> // omitted info
</button>
提交函数
$("#edicionContrato").submit(function(e){
e.preventDefault();
var form = this;
// checks and workarounds...
form.submit();
});
有什么想法为什么会发生这种情况?也许动态引入的HTML代码有误,导致了javascript或html出现问题?
.on('click', function(e){ e.preventDefault(); /* rest of the code */ })
。 - Jeremy Thilleon('click'
,因为如您所见,名称是动态创建的... 这是一个愚蠢的错误,没有定义按钮的类型。 - Jordi Castilla