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

交換

<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 に答える
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 に答える