删除确认

时间:2011-01-11 18:15:20

标签: javascript jquery

我有一组记录,以表格格式显示在表单中。在每条记录上都有一个删除复选框 - 这里是简化格式的表格:

<form method="post" action="" id="update-history-form">
  Item 1 <input type="checkbox" value="1" name="History[0][delete]">
  Item 2 <input type="checkbox" value="1" name="History[1][delete]">
  Item 3 <input type="checkbox" value="1" name="History[2][delete]">

  <input type="submit" value="Update History" name="update">
</form>

输入&#39;名称&#39;中的整数值属性有助于识别哪些记录已被选中删除。

如果已勾选任何删除复选框(提交时),我想要的是显示JavaScript警报确认。

3 个答案:

答案 0 :(得分:2)

$('#update-history-form').submit(function(){
  if ( $(this).find('input:checkbox:checked').length ){
    return confirm( "Really delete any of them?" );
  }
});

这将取消用户的表单提交确认对话框不正确。

如果您的表单中有非删除复选框,则可能需要将选择器修改为仅名称为contains“删除”的输入,例如

$(this).find( 'input[name*="delete"]:checked' )

答案 1 :(得分:0)

使用jQuery:

$('#update-history-form').submit(function(ev) {
  ev.preventDefault();
  if (this.find("input:checkbox:checked").length == 0 || confirm("Are you sure?")) this.submit();
});

答案 2 :(得分:0)

<form method="post" action="" id="update-history-form" onsubmit='return confirmChecks(this);'>
  Item 1 <input type="checkbox" value="1" name="History[0][delete]">
  Item 2 <input type="checkbox" value="1" name="History[1][delete]">
  Item 3 <input type="checkbox" value="1" name="History[2][delete]">

  <input type="submit" value="Update History" name="update">
</form>
<script type='text/javascript'>
function confirmChecks(someForm) {
  var inputList = someForm.getElementsByTagName('input');
  var aCheckboxIsChecked = false;
  for (var i=0; i < inputList.length; i++) {
    if (inputList[i].type.toLowerCase() == 'checkbox' && inputList[i].checked) {
      aCheckboxIsChecked = true;
      break;
    }
  }

  if (aCheckboxIsChecked) {
    var proceed = confirm('Really delete those things?');
    if (!proceed) {
      return false;
    }
  }
  return true;
}
</script>