1

如何使用 2 个警报验证以下代码?

第一项检查是至少选择了 1 个复选框 - 如果没有,请提醒消息“请选择至少 1 个复选框!”。第二个应该提醒“你确定要删除吗?” 并提交:

脚本:

<script type="text/javascript">
 $(document).ready(function() {

$("#delete").click(function() 
{   
    if (confirm('Are you sure you want to delete?')) {
                $('#form_test').submit();
    }
});

 });
</script>

HTML:

<a id="delete" href="#">Delete Images</a>

<form id="form_test" method='post' action=''>
    <input type="checkbox" name="remove[]" />
     <input type="checkbox" name="remove[]" />
</form>
4

3 回答 3

3
$("#delete").click(function() {   
 var exists = $('input[type=checkbox][name^=remove]:checked').length;
    if( !exists ) {
         alert('Please select at least 1 checkbox!');
    } else if(confirm('Are you sure you want to delete?')) {
         $('#form_test').submit();
    }
});

演示


笔记

新版本的 jQuery 已弃用:checkbox选择器。不推荐使用的项目列表

回复@Blender的评论

从关于我的 jQuery 文档中:checkbox我发现了这个:

$(':checkbox') 等价于 $('[type=checkbox]')。与其他伪类选择器(以“:”开头的选择器)一样。

建议在它前面加上标签名称或其他选择器;否则,将隐含通用选择器 ("*")。

换句话说,裸 $(':checkbox') 等价于 $('*:checkbox'),所以应该使用 $('input:checkbox') 来代替。

于 2012-09-13T17:49:58.850 回答
2

你可以试试这个:

$("#delete").click(function() {   
 var exists = $('input[type=checkbox]:checked').length;
     if( !exists ) {
         alert('Please Select any checkbox');
    } else {
      if (confirm('Are you sure you want to delete?')) {
         $('#form_test').submit();
       }
    }
});​

这是工作小提琴

于 2012-09-13T17:56:07.620 回答
1

你可以使用length属性。

$("#delete").click(function() {
    if (!$('input[type=checkbox]:checked').length) {
        alert('Please select at least 1 checkbox!')
    }   
    else if (confirm('Are you sure you want to delete?')) {
        $('#form').submit();
    }
});
于 2012-09-13T17:50:40.390 回答