Javascript 必须勾选最后三个复选框才能提交

Javascript 必须勾选最后三个复选框才能提交,javascript,php,Javascript,Php,下面是我的php表单中的复选框列表。我需要写一个脚本,其中只有最后三个复选框必须被选中的表单才能成功提交。我看了其他类似的问题,但似乎找不到我真正想要的,我很难写剧本 <input type="checkbox" name="checkbox" value="Send email request">Would you like to receive weekly new via email?<br> <input type="checkbox" name="chec

下面是我的php表单中的复选框列表。我需要写一个脚本,其中只有最后三个复选框必须被选中的表单才能成功提交。我看了其他类似的问题,但似乎找不到我真正想要的,我很难写剧本

<input type="checkbox" name="checkbox" value="Send email request">Would you like to receive weekly new via email?<br>
<input type="checkbox" name="checkbox" value="Agree to T&C">I agree to the Terms and Conditions<br> 
<input type="checkbox" name="checkbox" value="No Criminal Records">I have no criminal associations<br>
<input type="checkbox" name="checkbox" value="No Business with any other company">I have no personal or business relationship with any other company<br>
您想通过电子邮件接收每周新邮件吗?
我同意条款和条件
我没有犯罪团伙
我与任何其他公司没有个人或业务关系

您不需要使用任何JavaScript

只需向输入元素添加
required
属性即可

<input type="checkbox" required="required" name="checkbox" value="Send email request">Would you like to receive weekly new via email?<br>
您想通过电子邮件接收每周新邮件吗?
请查看此处以了解更多信息:


如果需要自定义消息或响应,则需要使用JavaScript来处理。

您不需要使用任何JavaScript

只需向输入元素添加
required
属性即可

<input type="checkbox" required="required" name="checkbox" value="Send email request">Would you like to receive weekly new via email?<br>
您想通过电子邮件接收每周新邮件吗?
请查看此处以了解更多信息:


如果您想要自定义消息或响应,则需要使用JavaScript来处理此问题。

或者,您可以使用jQuery检查最后3个复选框是否在提交之前被选中(必需)。考虑这个例子:

<form method="POST" action="index.php" id="form">
    <input type="checkbox" name="checkbox[]" value="Send email request">Would you like to receive weekly new via email?<br>
    <input type="checkbox" name="checkbox[]" value="Agree to T&C">I agree to the Terms and Conditions<br>
    <input type="checkbox" name="checkbox[]" value="No Criminal Records">I have no criminal associations<br>
    <input type="checkbox" name="checkbox[]" value="No Business with any other company">I have no personal or business relationship with any other company<br>
    <input type="submit" name="submit" />
</form>

<script src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#form').submit(function(e){
        var count = 0;
        var required_indeces = [1,2,3];
        $('input[type=checkbox]').each(function(index, element){
            if($.inArray(index, required_indeces) !== -1 && $(this).is(':checked')) {
                count++;
            }
        });

        if(count < 3) {
            e.preventDefault();
        }
    });
});
</script>

您想通过电子邮件接收每周新邮件吗?
我同意条款和条件
我没有犯罪团伙
我与任何其他公司没有个人或业务关系
$(文档).ready(函数(){ $('表格')。提交(功能(e){ var计数=0; 所需var_指数=[1,2,3]; $('input[type=checkbox]')。每个(函数(索引,元素){ 如果($.inArray(索引,必需的索引)!=-1&&$(此).is(':checked')){ 计数++; } }); 如果(计数<3){ e、 预防默认值(); } }); });
或者,您可以使用jQuery检查最后3个复选框是否确实在提交前被选中(必需)。考虑这个例子:

<form method="POST" action="index.php" id="form">
    <input type="checkbox" name="checkbox[]" value="Send email request">Would you like to receive weekly new via email?<br>
    <input type="checkbox" name="checkbox[]" value="Agree to T&C">I agree to the Terms and Conditions<br>
    <input type="checkbox" name="checkbox[]" value="No Criminal Records">I have no criminal associations<br>
    <input type="checkbox" name="checkbox[]" value="No Business with any other company">I have no personal or business relationship with any other company<br>
    <input type="submit" name="submit" />
</form>

<script src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#form').submit(function(e){
        var count = 0;
        var required_indeces = [1,2,3];
        $('input[type=checkbox]').each(function(index, element){
            if($.inArray(index, required_indeces) !== -1 && $(this).is(':checked')) {
                count++;
            }
        });

        if(count < 3) {
            e.preventDefault();
        }
    });
});
</script>

您想通过电子邮件接收每周新邮件吗?
我同意条款和条件
我没有犯罪团伙
我与任何其他公司没有个人或业务关系
$(文档).ready(函数(){ $('表格')。提交(功能(e){ var计数=0; 所需var_指数=[1,2,3]; $('input[type=checkbox]')。每个(函数(索引,元素){ 如果($.inArray(索引,必需的索引)!=-1&&$(此).is(':checked')){ 计数++; } }); 如果(计数<3){ e、 预防默认值(); } }); });
复选框需要有不同的名称。使用相同的名称意味着您只存储最后一个复选框的值。尝试以下两个选项之一(适用于PHP):

或:

<input type="checkbox" name="checkbox1" value="Send email request">Would you like to receive weekly new via email?<br>
<input type="checkbox" name="checkbox2" value="Agree to T&C">I agree to the Terms and Conditions<br> 
<input type="checkbox" name="checkbox3" value="No Criminal Records">I have no criminal associations<br>
<input type="checkbox" name="checkbox4" value="No Business with any other company">I have no personal or business relationship with any other company<br>

复选框需要有不同的名称。使用相同的名称意味着您只存储最后一个复选框的值。尝试以下两个选项之一(适用于PHP):

或:

<input type="checkbox" name="checkbox1" value="Send email request">Would you like to receive weekly new via email?<br>
<input type="checkbox" name="checkbox2" value="Agree to T&C">I agree to the Terms and Conditions<br> 
<input type="checkbox" name="checkbox3" value="No Criminal Records">I have no criminal associations<br>
<input type="checkbox" name="checkbox4" value="No Business with any other company">I have no personal or business relationship with any other company<br>

如果使用jquery未选中submit按钮,则可以禁用它们。如果使用jquery未选中submit按钮,则可以禁用它们。在这种情况下,这究竟有何用处?有4个输入,必须选择其中的3个才能继续。添加
required
属性意味着必须选中该属性才能继续。因此,对于4个输入,您建议如何使用此属性任意选择其中的3个?“我需要编写一个脚本,其中只有最后三个复选框必须选中才能成功提交表单”我认为必须选中最后三个输入才能提交表单。我不认为这是任意选择,而是全部,除非我误解了他的问题。但是有了最后三个输入的数据,它们似乎都是必需的:-)哦,天哪。不,不是你误读了这个问题——是我<代码>SamP.rep++@SamP我不知道这么简单。是否可以在服务器端检查此“必需”属性?(很抱歉,我可能忘了提到这一点)。在表单POST data中,只需检查复选框值是否为true。如果他们没有,拒绝这个帖子。在这种情况下,这到底有什么用处?有4个输入,必须选择其中的3个才能继续。添加
required
属性意味着必须选中该属性才能继续。因此,对于4个输入,您建议如何使用此属性任意选择其中的3个?“我需要编写一个脚本,其中只有最后三个复选框必须选中才能成功提交表单”我认为必须选中最后三个输入才能提交表单。我不认为这是任意选择,而是全部,除非我误解了他的问题。但是有了最后三个输入的数据,它们似乎都是必需的:-)哦,天哪。不,不是你误读了这个问题——是我<代码>SamP.rep++@SamP我不知道这么简单。是否可以在服务器端检查此“必需”属性?(很抱歉,我可能忘了提到这一点)。在表单POST data中,只需检查复选框值是否为true。如果他们不是,拒绝该帖子。