当前位置: 首页 > 面试题库 >

当我单击表单中的按钮时,表单被提交。如何避免这种情况?

魏明亮
2023-03-14
问题内容

我使用twitter-boostrap,我想在表单中使用这些单选按钮。问题是,当我单击这些按钮中的任何一个时,将立即提交表单。如何避免这种情况?我只想使用默认按钮,例如单选按钮。

从:

<%= form_for @product do |f| %>
    <div class="control-group">
      <%= f.label :type, :class => 'control-label' %>

      <div class="controls">
        <div class="btn-group" data-toggle="buttons-radio">
          <button class="btn">Button_1</button>
          <button class="btn">Button_2</button>
        </div>
      </div>

    </div>

    <div class="form-actions">
      <%= f.submit nil, :class => 'btn btn-primary' %>
      <%= link_to 'Cancel', products_path, :class => 'btn' %>
    </div>
<% end %>

javascript:

// application.js
$('.tabs').button();

问题答案:

根据优良的HTML5规范:

按钮 没有元素 类型 指定属性表示相同的事情与它的类型属性集的按钮元件到 “提交”

并且a <button type="submit">提交表单而不是像简单<buttontype="button">的按钮那样操作。

在HTML4规范说同样的事情:

type = commit | button | reset [CI]
此属性声明按钮的类型。可能的值:

  • submit:创建一个提交按钮。这是默认值。
  • reset:创建一个重置按钮。
  • button:创建一个按钮。

所以你的<button>元素:

<button class="btn">Button_1</button>
<button class="btn">Button_2</button>

与以下相同(在兼容的浏览器中):

<button type="submit" class="btn">Button_1</button>
<button type="submit" class="btn">Button_2</button>

只要您按下其中一个按钮,就会提交表格。

解决方案是使用普通按钮:

<button type="button" class="btn">Button_1</button>
<button type="button" class="btn">Button_2</button>

type="button"尽管有标准说明,但某些版本的IE还是默认使用。type使用<button>just时,应始终指定属性,以确保获得期望的行为。



 类似资料:
  • 问题内容: 我有一个HTML表单,其中使用了几个按钮。问题是,无论我单击哪个按钮,即使该按钮的类型不是“ submit”,也将提交表单。例如:之类的按钮,导致表单提交。 为这些按钮中的每个按钮执行一次操作是非常痛苦的。 我使用jQuery和jQuery UI,并且网站使用HTML5。 有没有办法禁用这种自动行为? 问题答案: 像按钮 是 提交按钮。 设置以改变它。是默认值(由HTML建议指定)。

  • 问题内容: 我的网站上有以下代码(使用php和smarty),试图避免在我按f5时重新提交表单: bln_added默认情况下为false,但一旦成功提交表单,则更改为true。模板中使用了smarty变量title和desc来将表单内容保留在其中,以防出现用户错误并且需要更改其输入内容。 如果成功提交了表单,则它将bln_added = true设置为第二位,因此代码的第二位不仅应清除表单字段,

  • 问题内容: 我的页面上有几个按钮,但是我不确定如何知道单击了哪个按钮。这是我的两个按钮的标记: 问题答案: 使用类似如下的HTML表单: 使用的PHP代码如下所示: 您应该始终 假定或默认为第一个提交按钮以HTML源代码的形式出现 。实际上,在以下情况下,各种浏览器会可靠地发送带有发布数据的提交按钮的名称/值: 用户使用鼠标或定位设备从字面上单击提交按钮 或者将焦点放在“提交”按钮(它们在选项卡上

  • 问题内容: 我有一个表格。在该表格之外,我有一个按钮。一个简单的按钮,如下所示: 但是,当我单击它时,它会提交表单。这是代码: 该按钮应该做的就是编写一些JavaScript。但是,即使看起来像上面的代码一样,它也会提交表单。当我将标签按钮更改为跨度时,它可以完美工作。但不幸的是,它必须是一个按钮。有什么办法可以阻止该按钮提交表单?像例如 问题答案: 我认为这是HTML最令人讨厌的小特性。该按钮必

  • 问题内容: 在下一页中,使用Firefox的“删除”按钮提交表单,但“添加”按钮不提交。如何防止“删除”按钮提交表单? 问题答案: 你正在使用HTML5按钮元素。请记住,原因是此按钮具有默认的提交行为,如W3规范所述,如此处所示: W3C HTML5按钮 因此,你需要明确指定其类型: 为了覆盖默认的提交类型。我只想指出发生这种情况的原因=)

  • 下面是MultistepForm的代码。我已经实现了一个多步骤表单功能,所以这里一切都很好,只是问题是在这个表单中,我在最后一步有一个预览页面,所以当我点击提交按钮时,表单正在消失,按钮正在顶部移动。所以如果有人能帮我请。