0

我是 javascript 的菜鸟。我在我的标签之间使用这个脚本,这将强制用户在点击提交按钮之前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" />已检查以及是否不向用户回显消息?我是个菜鸟,这是我第一次使用 javascript。

4

4 回答 4

0

干得好:

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

而你的表单标签,你可以删除this参数:

onSubmit="return formValidation();"
于 2013-03-15T08:05:01.133 回答
0

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

}

演示:小提琴

于 2013-03-15T08:06:09.370 回答
0

使用checked属性:

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

if(checkbox.checked) 
  alert("Check that");
于 2013-03-15T08:06:24.563 回答
0

代替

<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");
}
于 2013-03-15T08:11:44.373 回答