在img submit上提交之前至少验证一个复选框

时间:2012-09-13 17:47:41

标签: jquery

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

首先检查是否至少选中了1个复选框 - 如果没有,则提示“请选择至少1个复选框!”的消息。第二个应警告“你确定要删除吗?”并提交:

SCRIPT:

<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>

3 个答案:

答案 0 :(得分: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();
    }
});

<强> Demo


注意

新版本的jQuery已弃用:checkbox选择器。的 List of deprecated items

回复 @Blender

的评论

jQuery doc about :checkbox 我发现了这个:

  

$(':checkbox')相当于$('[type = checkbox]')。和其他一样   伪类选择器(以“:”开头的那些)。

     

建议   在它之前加上标签名称或其他选择器;否则,   通用选择器(“*”)是隐含的。

     

换句话说,裸露   $(':checkbox')相当于$('*:checkbox'),所以   应该使用$('input:checkbox')。

答案 1 :(得分: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();
       }
    }
});​

Here is the working fiddle

答案 2 :(得分: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();
    }
});