在IE中输入文本字段中按下输入键时按钮OnClick触发

时间:2014-05-09 15:59:27

标签: javascript jquery html5

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

<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(),我也尝试检查是否按下了回车键而不是鼠标点击而没有运气。这在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");
     });

1 个答案:

答案 0 :(得分:5)

这是期望/预期的行为。

尝试:

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

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