在没有一个复选框的情况下停止提交两种不同的表单

时间:2016-01-06 14:50:12

标签: jquery html forms

我需要有两种不同的形式。有时动态我希望有两个并排,其他时间只有一个,所以我需要它们被相同的条款和条件复选框标记。到目前为止,使用我学到的不同文章,您可以使用$(".one, .two")在jQuery中定位多个元素,但是下面的代码会阻止任何一种形式的提交。

<form method="post" id="options-select1">
    .....
</form>
<form method="post" id="options-select2">
    .....
</form>
<div class="termsconditions">
    <label>
        <input id="tc1" type="checkbox" />
        I accept the <a href="/privacy/" target="_blank">Terms &amp; Conditions</a>
    </label>
</div>

<script>
    $("#options-select1, #options-select2").submit(function(e) {
        if (!$('tc1:checked').length) {
            alert("Please accept our terms and conditions");
            return false;
        }
        return true;
    });
</script>

有人可以告诉我我做错了什么。

1 个答案:

答案 0 :(得分:0)

你的代码中有一个拼写错误导致jQuery在找到元素时失败。

您忘记了选择器#中的$('tc1:checked')

固定代码

<form method="post" id="options-select1">
    .....
</form>
<form method="post" id="options-select2">
    .....
</form>
<div class="termsconditions">
    <label>
        <input id="tc1" type="checkbox" />
        I accept the <a href="/privacy/" target="_blank">Terms &amp; Conditions</a>
    </label>
</div>

<script>
    $("#options-select1, #options-select2").submit(function(e) {
        if (!$('#tc1:checked').length) { //Note the change here
            alert("Please accept our terms and conditions");
            return false;
        }
        return true;
    });
</script>

希望这有帮助!