【问题标题】:on click showing confirmation box点击显示确认框
【发布时间】:2014-07-25 23:57:53
【问题描述】:

我是网络开发的新手。我想创建一个函数,通过单击删除按钮(如果选择了行)来显示确认框。我也尝试过,我的功能正常工作,但我只想在选择行或行时显示确认框,否则它将显示“请先选择行”。请帮帮我

我的代码

<input type="submit" name="submit"  class="button"  value="Delete" onclick="javascript: var c=confirm('Are you sure you want to Delete selected members?'); if(c==false) return false; ">

这是选择代码

function checkall()
{
    //alert("Hi");
    var length=document.listing_form.elements['ids[]'].length;
    //alert(length);
    for(var c1=0;c1<length;c1++)
        document.listing_form.elements['ids[]'][c1].checked=true;
} // ends

由于声誉较低,我无法添加图片,因此我添加了link,请访问并理解我的问题。

【问题讨论】:

  • 我从本页的数据库中获得了横幅行
  • 那又怎样?请显示代码!否则我们可以如何帮助您?
  • onXXX 属性中不需要 javascript: 前缀。这仅在使用 JS 代替 URL 时才需要,例如在 href 中。
  • 我已经出示了我的确认框代码。当行选中行时,我只需要确认框。如果您不理解我的问题,我将添加我的页面屏幕截图..?
  • @Barmar 但它工作正常

标签: javascript forms function


【解决方案1】:
function ok_to_delete() {
    if (rows_selected()) {
        return confirm("Are you sure you want to delete the selected members?");
    } else {
        alert("Please select a row first.");
        return false;
    }
}

function rows_selected() {
    var ids = document.listing_form.elements['ids[]'];
    var length = ids.length;
    for (var c1 = 0; c1 < length; c1++) {
        if (ids[c1].checked) {
            return true;
        }
    }
    return false;
}

然后您的表单应包含:

<form method="post" onsubmit="return ok_to_delete()">

【讨论】:

  • rows_selected() 会怎样...?
  • 我对所有行选择函数使用了以下代码 checkall() { //alert("Hi"); var length=document.listing_form.elements['ids[]'].length; //警报(长度); for(var c1=0;c1
  • 看来你知道的足够多,可以编写一个函数来测试它们中的任何一个是否被检查。
  • 不,我无法制作 rows_selected 功能。请帮我做,请帮助...
  • 我是 Web 开发新手,对 JavaScript 了解不多,请做
【解决方案2】:

你需要某种点击处理程序来选择你的行。所以如果:

<table id="rows">
<tr></tr>
<tr></tr>
<tr></tr>
</table>

你需要这样的东西:

var _table, _tr;
function rowSelect() {
    _table = document.getElementById("rows");
    _tr = _table.getElementsByTagName("tr");
    for (var i = 0; i < _tr.length; i++) {
            _tr[i].addEventListener('click', function() {
                if(_tr[i].className.indexOf('selected')>-1) {
                    // deselect
                    _tr[i].className = _tr[i].className.replace("selected", "");
                }
                else {
                    // select
                    _tr[i].className = _tr[i].className + " selected";
                }
            }, false);
    }
}

function confirm() {
     if (checkSelected()) {
        return confirm("Are you sure you want to delete the selected members?");
    } else {
        alert("Please select a row first.");
        return false;
    }
}

function checkSelected() {
    for (var i = 0; i < _tr.length; i++) {
        if (_tr[i].className.indexOf('selected')>-1) return true;
    }
    return false;

}

如果您有任何问题,请告诉我。

【讨论】:

    【解决方案3】:

    由于您使用的是提交按钮,因此最好将其添加到表单标签本身,如下面的代码。如果确认返回 true,则表单将提交。否则,您将只是返回该页面并且不会继续提交。

    <form method="post" onsubmit="return confirmThis()">
    <input type="submit" name="submit"  class="button"  value="Delete" />
    </form>
    
    <script>
      function confirmThis() {
          return confirm("Are you sure you want to Delete selected members?");
      }
    </script>
    

    【讨论】:

    • 这如何回答这个问题?如果用户没有选择一行,他想显示一个警告“请先选择一行”。
    • 我已经使用了这个功能@gerald 我想要什么?我想通过单击删除按钮添加两个条件。 1- 如果行或行未选择功能将显示“请选择行” 2- 如果行或行将选择功能将显示“您确定要删除选定的成员吗?”
    • @Barmar 这个问题现在无论如何都无法回答。因为我们对行一无所知,OP 也不懂。
    • @user3698265 "如果未选择行或行"。我们怎么帮你????我们不知道这些行是如何编码的!
    • 由于声誉较低,我无法添加图片所以请访问链接我希望了解我的问题4.bp.blogspot.com/-mw002mGqNqo/U5AJ8neLekI/AAAAAAAAAbk/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 2012-05-14
    相关资源
    最近更新 更多