【问题标题】:Button OnClick Fires When Enter Key Is Pressed In Input Text Field In IE在 IE 的输入文本字段中按下 Enter 键时触发按钮 OnClick
【发布时间】:2014-05-09 15:59:27
【问题描述】:

我的网页上有几个输入文本框用于搜索:

<input type="text" id="mfrText"  name="MfrSearchText" value='@ViewBag.SearchAndSort.MfrSearchText' />
<input type="text" id="partText"  name="PartNoSearchText" value="@ViewBag.SearchAndSort.PartNoSearchText" />  </
<input type="text" id="descText" name="DescriptionSearchText" value="@ViewBag.SearchAndSort.DescriptionSearchText" /> 

我有一个按钮,它有一个点击事件来显示一个对话框。

<button class="btnAdd btn-xs">Add</button>

我遇到的问题是,当按下回车键并且其中一个输入字段具有焦点时,会触发按钮 onclick 事件并显示对话框。我已经尝试过 e.preventDefault() 并且我还尝试过检查是否按下了 enter 键而不是没有运气的鼠标单击。这发生在 IE 中,但不在 Chrome 中。如何防止这种行为?

我的点击事件:

$(".btnAdd").click(function (e) {

         alert($(".btnAdd").is(":focus"));
         var partID = $(this).closest('tr').attr('id');
         $("#divAdd").dialog({
             modal: true,
             title: 'Increase Qty',
             buttons: {
                 "Save": function () {
                     var qty = $("#addQtyAdd").val();
                     var clockNo = $("#addClockNo").val();
                     var asset = $("#addAssetNo").val();

                     AddPart(partID, qty, clockNo, asset);
                 },
                 Cancel: function () {
                     $(this).dialog("close");
                 }
             }
         });
         $(".ui-dialog-title").css("color", "lightgreen");
     });

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    这是期望/预期的行为。

    试试:

    <button type="button" class="btnAdd btn-xs">Add</button>
    

    这将阻止按钮被视为提交控件,并且将被 Enter 按键忽略。

    【讨论】:

    • 我不知道按钮是隐含的输入。感谢您轻松修复。
    • 是的,我不久前发现了这个“硬”的方式 XD
    • 6 年后,它仍然困扰着 Web 开发人员:facepalm:
    猜你喜欢
    • 2013-11-20
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    相关资源
    最近更新 更多