如何实现JQuery确认对话框弹出窗口

我有一个带有提交按钮ant的表单,我想添加一个确认模式对话框 使用Django模板时,使用JQuery示例未成功

我目前使用JS Confirm()(请参见下文),但是我想自定义对话框 我了解我应该使用JQuery对话框,所以我尝试实现此解决方案

这是我的模板

{% extends 'layouts/base.html' %}
{% load static %}
{% load crispy_forms_tags %}
{% block extrahead %}
<!--<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />-->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

    <script>
        $(document).ready(function() {
            $("#randomize").click(function(event){
                var response = confirm("Do you confirm randomization");
                if (response == false) {
                    event.preventDefault()
                }
            });
        });
    </script>

{% endblock %}
{% block title %}Index | Intense TBM{% endblock %}
{% block content %}



<div class='container'>

<h1>Randomization form</h1>
</br>

<div class="row">
    <div class="col-sm">
        <strong>Patient code: </strong>{{ preincluded.pat_num }}
    </div>
    <div class="col-sm">
        <strong>Age: </strong>{{ preincluded.age }}
    </div>
    <div class="col-sm">
        <strong>Sex: </strong>
        {% if preincluded.pat_sex == 1 %}
            Male
        {% else %}
            Female
        {% endif %}

    </div>
</br></br>
</div>
    <form method="POST" class="post-form">
        {% csrf_token %}
        {{ form |crispy }}
        <!--<button id="randomize" type="submit" class="btn btn-primary" onclick="confirm('Do you confirm randomization?')">Randomize</button>-->
        <button id="randomize" type="submit" class="btn btn-primary">Randomize</button>
    </form>

</div>
</br></br></br></br>

{% endblock %}

我尝试通过以下方式更改JS代码:

  <script>

    $(document).ready(function() {
        $("#randomize").click(function(event){
            $('body').append('<div id="dialog"></div>');
            $("#dialog").html('Do you confirm randomization?');

            $( "#dialog" ).dialog({
                title: 'Intense TBM Randomization',modal: true,buttons: {
                    Yes: function() {
                        //
                        $( this ).dialog( "close" );
                    },Cancel: function() {
                        $( this ).dialog( "close" );
                        //
                    }
                }
            })
        });
    });
  </script>

编辑 实际上,我收到一条消息错误:对象不支持属性或方法“对话框”

如果使用开发工具检查页面,我可以看到已添加div #dialog,但对话框未显示

liuqingshuai_110 回答:如何实现JQuery确认对话框弹出窗口

您正在将对话框div#dialog动态插入到dom中,但是jquery不知道这一点。 jQuery在dom上找不到div#dialog,因此引发错误。

您要做的就是在页面加载时初始化div#dialog,因此它将显示在dom上。

您必须使样式显示:div#dialog中没有CSS,因此除非您真正想要显示,否则它不会显示。

要显示,只需使用$('#dialog')。show()并在需要切换时调用hide()。

,

我尝试了一个“最简单”的示例,并且可以工作! 我迷路了!!!

<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <title>jQuery UI Dialog - Default functionality</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <script>

    $(document).ready(function() {
        $("#randomize").click(function(event){
            //afficher popup -> créer une fonction et ajouter le numéor du patient en paramètre 
            //pour personnaliser le popup
            $('body').append('<div id="dialog"></div>');
            $("#dialog").html('Do you confirm randomization?');
            console.log($('#dialog'))
            $( "#dialog" ).dialog({
                title: 'Intense TBM Randomization',modal: true,buttons: {
                    Yes: function() {
                        //
                        $( this ).dialog( "close" );
                    },Cancel: function() {
                        $( this ).dialog( "close" );
                        //
                    }
                }
            })
        });
    });

  // $( function() {
  //   $( "#dialog" ).dialog();
  // } );
  </script>
</head>
<body>
<button id="randomize" type="submit" class="btn btn-primary">Randomize</button> 



</body>
</html>```
,

我认为我发现了问题 我需要添加jQuery.noConflict();

本文链接:https://www.f2er.com/3157735.html

大家都在问