加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

表单 – 带有单个文本输入字段的Bootstrap模式对话框始终在Enter

发布时间:2020-12-14 23:47:11 所属栏目:资源 来源:网络整理
导读:当焦点在字段上并且按下Enter时,为什么这个带有一个文本字段(和NO按钮)的简单模态对话框会被忽略? a href="#dlgAddDeviceFolder" class="add-device-folder" data-toggle="modal"New Folder/adiv id="dlgAddDeviceFolder" class="modal hide fade" tabindex
当焦点在字段上并且按下Enter时,为什么这个带有一个文本字段(和NO按钮)的简单模态对话框会被忽略?
<a href="#dlgAddDeviceFolder" class="add-device-folder" data-toggle="modal">New Folder</a>

<div id="dlgAddDeviceFolder" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="dlgAddFolderLabel" aria-hidden="true">
  <div class="modal-header">
    <!--<a type="button" class="close" data-dismiss="modal" aria-hidden="true">×</a>-->
    <h3 id="myModalLabel">Add Device Folder</h3>
  </div>

  <div class="modal-body">
    <form class="form-horizontal">
      <div class="control-group">
        <label class="control-label" for="dlgAddDeviceFolder_name">Folder Name</label>
        <div class="controls">
          <input id="dlgAddDeviceFolder_name" type="text" placeholder="Folder Name" autocomplete="off">
        </div>
      </div>
    </form>
  </div>

  <div class="modal-footer">
    <!--<a type="button" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</a>-->
    <!--<a id="dlgAddDeviceFolder_btnOk" type="button" class="btn btn-primary">OK</a>-->
  </div>
</div>

有广泛的讨论here表明这是一个按钮问题(我在按钮和锚标签上放了type =“button”.我已经将按钮标签转换为锚点).但是,我尝试了所有提出的解决方案,最后只是完全注释掉按钮,它仍然会发生.

请注意,如果您只是复制相同的文本输入并且有两个字段,则问题就会消失(关注任一文本字段都不会导致Enter上的解雇)

解决方法

感谢@mccannf指出我正确的方向.这似乎是比一般特定于Bootstrap的更一般的表单提交问题.两种解决方案

1.将表单的onsubmit属性设置为onsubmit =“return false;”
(https://stackoverflow.com/a/1329168/569091)

我最喜欢这个解决方案,因为它似乎很难预测(并且可能与浏览器有关)哪些表单字段可能会也可能不会在输入时触发表单提交.

所以,在我的原始问题的例子中:

<form class="form-horizontal" onsubmit="return false">

2.设置onkeydown(或onkeyup?)属性,以便在event.keyCode == 13时返回false
(https://stackoverflow.com/a/2037935/569091)
在这个链接中,onkeyup工作,但我不得不使用onkeydown(浏览器依赖?)

所以,在我的原始问题的例子中:

function ignoreEnter(event)
{
  if (event.keyCode == 13) {
    return false;
  }
}

// and this in the HTML
<input id="dlgAddDeviceFolder_name" type="text" placeholder="Folder Name" onkeydown="return ignoreEnter(event);">

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读