在提交之前检查文本框是否已被选中

时间:2014-04-26 06:13:17

标签: javascript jquery forms

我想提交表单当且仅当文本框被选中时...如果不是我想停止表单并发出提醒

现在我收到警报,如果它没有被检查但是它以任何方式提交表格

$(function() {
        $("#button").click(function(){
        if ($("#uploadTOS").is(":checked")) {
        return true;
        } else {
        alert("Please agree to the TOS");
        return false;
        }
        })
        })

<form enctype="multipart/form-data" action="urlupload.php?do=verify" id="form" method="post" onsubmit="a=document.getElementById('form').style;a.display='none';b=document.getElementById('part2').style;b.display='inline';" style="display: inline;">
<div id="uploadform">
<input type="text" name="uploadfile" size="30" /><p>
<input type="submit" id="button" class="button" value="Upload" />
</div>
        <div id="TOSDiv" style="display:none; z-index:60;">
            <input id="uploadTOS" type="checkbox" name="tos" value="1" />
            <span id="uploadTOSText">
                I Agree to the <a href="tos.php" target="_blank">Terms of Service</a>
            </span>     
        </div>
</form>

3 个答案:

答案 0 :(得分:1)

将javascript更改为:

function submitcheck() {

        if ($("#uploadTOS").is(":checked")) {
        return true;
        } else {
        alert("Please agree to the TOS");
        return false;
        }
}

然后将onclick添加到提交按钮

<input type="submit" id="button" class="button" value="Upload" onclick="return submitcheck();" />

答案 1 :(得分:1)

使用onclick javascript:

function toscheck() {

        if ($("#uploadTOS").is(":checked")) {
        return true;
        } else {
        alert("Please agree to the TOS");
        return false;
        }
}

答案 2 :(得分:0)

我认为对于较新版本的jQuery,不推荐使用返回值。请尝试使用event.preventDefault代替return false

请注意,event变量只能通过jQuery .click(function(event) {...})处理程序的第一个参数。