单击按钮时如何显示对话框

How to display a dialog box when you click a button

提问人:John 提问时间:8/23/2017 最后编辑:IvanJohn 更新时间:11/17/2023 访问量:9976

问:

我想在单击“前进”按钮时显示一个对话框。此对话框必须使我能够继续或保持在同一页面上。你是怎么做到的?

以下是我的源代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/base/jquery-ui.css">
        <script src="http://code.jquery.com/jquery.min.js"></script>
        <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
        <title>Test</title>
<script>
$(document).ready(function() {
    $( "#dialog" ).dialog({
      modal: true, 
      buttons: {
        "Yes": function() {
          $('#valid');
          //$( this ).dialog( "close" );
        },
        "No": function() {
          $( this ).dialog( "close" );
        }
      }
    });
  });

</script>
    </head>

    <body>
    <div id="dialog" title="Box">
    </div>
    <p>Welcome...!</p>
    <input type="file"/>
    <input type="submit" id="valider" name="valid" value="Forward"/>
    </body>
</html>
javascript jquery jquery-plugins

评论

0赞 Niladri 8/23/2017
你有没有任何形式的模仿?我在 HTML 中看不到任何形式
0赞 John 8/23/2017
当我有对话消息时,如何单击按钮?
0赞 8/23/2017
看看 window.location.assign developer.mozilla.org/en-US/docs/Web/API/Window/...
0赞 Niladri 8/23/2017
<input type="submit" id="valider" name="valid" value="Forward" />如果要提交标记,则应位于标记内<form>

答:

0赞 WithoutHope 8/23/2017 #1

这应该对你有用..

if (confirm("your message")) {

    // your code

}
0赞 Ivan 8/23/2017 #2

首先,您需要添加一个元素。然后添加 assign 一个 id、一个目标文件和一个 onsubmit 函数。我们会写.<form>return firstModal()

让我们创建:使用jQuery UI中的.dialog,我们创建一个带有两个选项的模式:一个和另一个。然后,我们将第一个链接到关闭对话框,另一个链接到允许将 HTML 表单提交到 中设置的目标文件。firstModal()CloseSend$(this).dialog("close")document.getElementById("myForm").submit()action

以下是完整的工作代码:

您可以创建两个模式框:一个用于初始输入,另一个用于确认:

let confirmFormDialog = function(form) {

  $("#dialog").dialog({
    modal: true,
    buttons: {
      Send: function() {
        document.getElementById("myForm").submit();
      },
      Close: function() {
        $(this).dialog("close");
      }
    }
  });
  
  return false;

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

<div id="dialog" title="Box"></div>
<p>Welcome...!</p>
<form id="myForm" onsubmit="return confirmFormDialog()" action="targetFile.php">
  <input type="file" />
  <input type="submit" id="valider" name="valid" value="Forward" />
</form>

使用这种技术,我们需要确保 confirmFormDialog() 返回 。这样,当单击输入按钮时,HTML 表单不会提交。通过删除此默认行为,我们决定何时使用 .false.submit()

0赞 ajit-jain 8/23/2017 #3

您需要添加单击事件侦听器以在单击按钮时显示对话框Forward

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

<div id="dialog" title="Box"></div>
<p>Welcome...!</p>
<input type="file" />
<input type="submit" id="valider" name="valid" value="Forward" />
<script type="text/javascript">
$(document).ready(function() {
  document.getElementById("valider").addEventListener("click",function(){
    $("#dialog").dialog({
      modal: true,
      buttons: {
        Yes: function() {
          $( this ).dialog( "close" );
        },
        No: function() {
          console.log('clicked no');
        }
      }
    });
  });
});
</script>

评论

0赞 John 8/23/2017
是否可以更改对话框的背景颜色,因为默认颜色显示不佳并且我们看不到对话框
0赞 ajit-jain 8/23/2017
添加 <style> .ui-dialog,.ui-widget, .ui-widget-content, .ui-corner-all, .foo, .ui-draggable, .ui-resizable {background:yellow !important} </style> 它会将对话框颜色变为黄色。head