【问题标题】:Confirm delete with popup window通过弹出窗口确认删除
【发布时间】:2014-07-01 07:40:05
【问题描述】:

我正在尝试创建一个 .php 文件,该文件使用确认操作的弹出窗口删除数据库行。 我知道那是十几个例子,但是经过多次尝试后我无法做到这一点,因为我不了解 javacript。 经过一番研究,我发现了这个(link)示例源代码 github link

这是我设法“创建”的简化代码,但是当我在其他按钮上单击第 I 项的删除操作时,我只会得到弹出窗口,该操作会立即执行。有人可以帮我解决这个问题吗?!

<title>Title</title>

<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="../jquery.confirm.js"></script>

<div class="container">

    <table class="table">

        <thead>
            <tr>
                <th class="col-lg-3">#</th>
                <th class="col-lg-1">Name</th>
                <th class="col-lg-8">Action</th>
            </tr>
        </thead>

        <tbody>

            <tr>
                <td>1</td>
                <td>Item 1</td>
                <td><a id="simpleConfirm" href="index.php?action=delete&id=1" class="btn btn-primary">Delete</a></td>
            </tr>

            <tr>
                <td>2</td>
                <td>Item 2</td>
                <td><a id="simpleConfirm" href="index.php?action=delete&id=2" class="btn btn-primary">Delete</a></td>
            </tr>

            <tr>
                <td>3</td>
                <td>Item 3</td>
                <td><a id="simpleConfirm" href="index.php?action=delete&id=3" class="btn btn-primary">Delete</a></td>
            </tr>

        </tbody>

    </table>

    <script>
        $("#simpleConfirm").confirm();
    </script>

</div>

<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/js/bootstrap.min.js"></script>
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>

【问题讨论】:

  • ID 是唯一的,不能有多个具有相同 ID 的元素。改用一个类。
  • 使用链接删除内容绝不是一个好主意,因为某些浏览器会跟踪页面上的所有链接以加快浏览速度,或者搜索引擎/爬虫会跟踪所有链接。使用按钮或图像按钮来触发删除行为
  • @klaus-veliu,我们的回复有帮助吗?谢谢!

标签: javascript


【解决方案1】:

一个 ID 只能在一个页面上使用一次。要定位多个相似元素,请使用类而不是 ID 进行重写。另外,请记住将您的确认“问题”字符串添加到confirm 的参数中,并在其后面加上您的条件代码。

<td><a class="simpleConfirm" href="index.php?action=delete&id=1" class="btn btn-primary">Delete</a></td>

var confirmed = $('.simpleConfirm').confirm('Are you sure?');
if(confirmed) { 
  /* do something when user clicks 'ok' */ 
} else {
 /* optionally do something else when user clicks 'cancel' */ 
}

https://developer.mozilla.org/en-US/docs/Web/CSS/ID_selectors

https://developer.mozilla.org/en-US/docs/Web/CSS/Class_selectors

https://developer.mozilla.org/en-US/docs/Web/API/window.confirm

【讨论】:

    【解决方案2】:

    首先,要使用 jquery 选择器$("#id"),您需要确保 html 元素的 ID 是唯一的。接下来,我假设您正在寻找一个弹出框,提示用户是否要删除指定的记录。

    你可以这样做

    $("#simpleConfirm").click(function(){
        var check = confirm("Please confirm that you want to delete the record?");
    
        if (check) {
            // insert code to delete record
        }
    });
    

    【讨论】:

    • 感谢您的回复,但我之前应该告诉过我,我对 javascipt 一无所知。我在这个 [链接][1] 中给出了我的案例的完整示例,如果我单击删除(第 II 和 III 项),我的想法是让弹出窗口出现。你们中的许多人可能会建议在 Javascript 中使用确认功能,但这不是一个解决方案,因为如果在页面上频繁使用这种弹出窗口,现代浏览器会阻止它。 [1]:dropbox.com/s/pa9bc603ltmpktg/confirmdelete.zip
    • 如果从头开始,我建议访问link - 在 w3 学校,您可以在 javascript 和 jquery 中快速上手。在我的代码中,我使用 jquery 来识别元素,函数中的代码是 javascript。就这么简单!!另外,我建议使用按钮类型的“”标签。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 2014-01-14
    相关资源
    最近更新 更多