javascript - 普通按钮上的 onclick 正在提交表单

标签 javascript jquery html forms

场景

我有一个 java具有长格式的 JSP View 。这很好用。我可以通过在任何输入字段中按回车键或使用提交按钮来提交我的表单。

新要求

在一部分中,我必须添加按钮来替换一些<label>。对于 <input>允许编辑,没有什么难的。

我尝试了什么

这部分 View 是动态创建的,因为行数取决于用户引入的数据,这部分创建每一行:

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>";

按钮的结果 HTML

 <button id="eCCC5" class="btn btn-default"><span class="glyphicon glyphicon-plus-sign"></span></button>

问题

当我使用 onclick 时在新按钮中定义一个函数,这个函数被调用,但是之后,click提交按钮的事件 ALSO 被调用,我不知道为什么......但是正如你在代码中看到的,即使我 DON'T 在按钮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代码有一些错误并中断了javascripthtml之后?

最佳答案

当您使用 <button>没有指定类型的元素,它 defaults to type="submit" .您需要将其指定为 type="button"停止提交表单:

<button type="button" id="eCCC5" class="btn btn-default">
    <span class="glyphicon glyphicon-plus-sign"></span>
</button>

关于javascript - 普通按钮上的 onclick 正在提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28876955/

相关文章:

javascript - meteor 自动表单的简单验证码字段类型

javascript - 当对话框在 IE11 中再次出现时按钮不会更改为禁用

javascript - 在 $.getJSON 中发送

html - 你如何阻止图像/文本在网页上以不同的分辨率移动?

javascript - 所有浏览器都可以使用正则表达式处理多行搜索吗?

javascript - Rails 升级到 Angular 2

javascript - 防止qtip2中的默认点击事件

javascript - AngularJS 指令不会在 templateUrl 页面上呈现 javascript

jquery - 将行号列添加到 jquery 数据表

c# - 如何在asp.net mvc 中获取html 表的值?