javascript 如何修改此脚本以包括复选框(如果选中)

inn6fuwd  于 2023-03-06  发布在  Java
关注(0)|答案(4)|浏览(105)

我在head标记之间使用此脚本,它将强制用户在单击提交按钮之前滚动textarea

<script language="JavaScript">
<!--

function textareaAtEnd(textareaObj)
{
    return ((textareaObj.scrollTop + textareaObj.offsetHeight) > textareaObj.scrollHeight);
}

function formValidation(formObj)
{
    if (textareaAtEnd(formObj.licenseAgreement))
    {
        return true;

    } else {
        alert ("Please scroll to the end to move on.")
        return false;
    }

}

// -->
</script>

我的<form>如下所示:

<form action="step2.php" method="post" onSubmit="return formValidation(this);">
    <textarea name="licenseAgreement" rows="20" cols="90">Very long license agreement text</textarea>
    <br />
    <input name="agree" type="checkbox" value="yes" /> I have read and agreed the above license agreement
    <br />
    <input type="submit" value="CONTINUE">
</form>

如何修改此JavaScript,使其同时检查<input name="agree" type="checkbox" value="yes" />是否被选中,以及是否向用户回显消息?

oknrviil

oknrviil1#

function formValidation(formObj) {
    if(!formObj.agree.checked) {
        alert ("Please agree to terms.")
        return false;
    } else if (textareaAtEnd(formObj.licenseAgreement)) {
        return true;
    } else {
        alert ("Please scroll to the end to move on.")
        return false;
    }

}

演示:Fiddle

btqmn9zl

btqmn9zl2#

使用checked特性:

var checkbox = document.getElementsByName("agree")[0];

if(checkbox.checked) 
  alert("Check that");
uxhixvfz

uxhixvfz3#

给你:

if (document.getElementById('agree').checked == false) { 
    alert('Check the agree box dummy!');
}

对于客户端代码,我总是推荐使用ID是一个最佳实践。
因此,您可以将验证函数更改为:

function formValidation() {
    if (textareaAtEnd(document.getElementById('licenseAgreement')) == false) {
        alert ("Please scroll to the end to move on.")
        return false;
    } 
    else if (document.getElementById('agree').checked == false) {
        alert('Check the agree box dummy!');
        return false;
    }
    else {
        return true;
    }
}

另外,一定要添加一个id="agree"到您的<input type="checkbox"id="licenseAgreement"到您的文本区域。
因此,它应该如下所示:

<input name="agree" id="agree" type="checkbox" value="yes" />

...

<textarea name="licenseAgreement" id="licenseAgreement" rows="20" cols="90">

和form标记,可以删除this参数:

onSubmit="return formValidation();"
nkhmeac6

nkhmeac64#

    • 替换**
<input name="agree" type="checkbox" value="yes" />
    • 与**
<input name="agree" id="agree" type="checkbox" value="yes" />

为复选框添加id=agree属性。

if(document.getElementById("agree").checked == false)
{
    alert("Checkbox is not checked , please select checkbox");
}

相关问题