【问题标题】:My jQuery UI Dialog doesn't open if not preceded by an alert如果前面没有警报,我的 jQuery UI 对话框不会打开
【发布时间】:2016-08-12 17:53:44
【问题描述】:

在我的 HTML 页面的开头,我的对话框的定义:

<script type="text/javascript">
$(function() {
  $( "#dialog-confirm" ).dialog({
    autoOpen: false,
    resizable: true,
    height:180,
    width:300,
    modal: true,
    buttons: {
      "Yes": function() {
        $( this ).dialog( "close" );
      },
      "No": function() {
        $( this ).dialog( "close" );
      }
    }
  });
});
</script>

<div id="dialog-confirm" title="Test dialog">
  <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>You can press Yes or No</p>
</div>

在我的 HTML 页面结束之后,我要打开对话框的位置(inputText 是由 Id 获得的输入):

inputText.addEventListener("keydown", function() {
  if (event.which == 13 || event.which == 10)
  {
    alert("test");
    $(document).ready(function() {
        $( "#dialog-confirm" ).dialog( "open" );
    });
  }
});

我的问题是,如果我不输入 alert("test");,当我输入输入时,我的对话框将不会打开。

我可以做些什么来消除警报并保持正确的操作?

【问题讨论】:

    标签: javascript jquery html jquery-ui dialog


    【解决方案1】:

    您应该通过这样做来防止警报的默认行为:

    inputText.addEventListener("keydown", function() {
      event.preventDefault();
      if (event.which == 13 || event.which == 10)
      {
        alert("test");
        $(document).ready(function() {
            $( "#dialog-confirm" ).dialog( "open" );
        });
      }
    });
    

    键 13 和 10 用于回车键,如果你不阻止默认行为,那么当你的对话框显示时,第一个按钮将被聚焦,回车键将触发点击此按钮。

    所以,通过 event.preventDefault(); 来防止点击

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 2013-10-30
      相关资源
      最近更新 更多