0

ここには、ユーザーフォームを検証する javascipt コードがいくつかあります。ユーザーが正しい答えを入力すると、それが伝えられ、次の質問へのリンクが表示されます。少なくとも、それがすべきことです。フォームをクリックするとページがリロードされますが、return false を追加したためリロードされません。

div tra は 35
を保持し、div usermsg はユーザーが入力した値です。

<script>
    $("#submit").click(function(){  
        var clientmsg6 = $("#usermsg").val();
        var rightanswer = $("#tra").val();
        if (clientmsg6<>rightanswer)
        {
        $("#confirm").html("<h2>Sorry, wrong answer.</h2>");
        }
        else
        {
        $("#confirm").html("<a href='#' onclick='play();' style='font-size:20px;' id='new1'>Click here for Question 2</a>");
        }
        return false;
    });
</script>

これが機能しない理由はありますか?

4

5 に答える 5

3

そのはず

if (clientmsg6 != rightanswer)

いいえ

if (clientmsg6<>rightanswer)
于 2013-07-22T20:40:24.363 に答える
0

ドキュメントの読み込みが完了したら、ハンドラーをアタッチする必要があります。

スクリプトを次のようにラップします

<script>
$(function() {
  // script
});
</script>
于 2013-07-22T20:40:19.740 に答える
0

フォームの送信を防ぐreturn falseには、送信ボタンではなくフォーム自体で行う必要があります。コードは次のようになります。

HTML

<form action="page.php" method="post">
  <input id="usermsg" type="text" name="answer" />
  <input id="submit" type="submit" value="Submit" />
</form>

JSclientmsg6 (構文エラーがある行に注意してください)

$("#myform").on('submit', function(){  
    var clientmsg6 = $("#usermsg").val();
    var rightanswer = $("#tra").val();
    if (clientmsg6 != rightanswer) { //This line was also wrong, should be != instead of <>
        $("#confirm").html("<h2>Sorry, wrong answer.</h2>");
    }
    else {
        $("#confirm").html("<a href='#' onclick='play();' style='font-size:20px;' id='new1'>Click here for Question 2</a>");
    }
    return false;
});

または、送信ボタンを単純な古いボタンに変更することで既存のコードを維持することもできますが、ユーザーがenterキーを押して同じアクションを実行できるという追加機能が失われます。

<form action="page.php" method="post">
  <input id="usermsg" type="text" name="answer" />
  <input id="submit" type="button" value="Submit" />
</form>
于 2013-07-22T20:38:47.807 に答える