0

HTML のフォームがあり、ボタンをクリックしたときにテキストを「チャンピオンズ リーグ トリビア」から「マンチェスター」に変更したいと考えています。一瞬だけ切り替わった後、「チャンピオンズ リーグのトリビア」に戻ります。なぜ元に戻るのかわかりません。何か案は?

<script  type="text/javascript" src="quiz.js" ></script>
<body>
<form action="" method="post" onsubmit="return checkscript()">
    <h1>Choose a Quiz</h1>

    <p><input type="radio" name="Radio" value="1" /><font size="5"
    color="#0033CC" id="cl">Champions League Trivia</font><br />
    <br />
    <input type="radio" name="Radio" value="2" /><font size="5"
    color="#CC0000" id="epl">English Premier League Trivia</font><br />
    <br />
    <input type="radio" name="Radio" value="3" /><font size="5"
    color="#660033" id="ll">La Liga Trivia</font><br />
    <br />
    <input type="submit" name="Submit" value="Go" onclick="quizRun()" /></p>
    </form>
    <p id="result"></p>
    </body>
    </html>

ここにジャバスクリプトがあります

function quizRun()
{
var inputs = document.getElementsByTagName("input");
var choice = 0;
if (inputs[0].checked) {
        choice = 1;
        var cl = document.getElementById('cl');
        cl.textContent = 'Manchester';
}
if (inputs[1].checked) {
        choice = 2;

}
if (inputs[2].checked) {
        choice = 3;
}
}
function checkscript()
{
    var inputs = document.getElementsByTagName("input");
    for (var i=0, l=inputs.length; i<l; i++) {
        if (inputs[i].name === "Radio" && inputs[i].checked) return true;
    }
    return false;
}
4

4 に答える 4

1

スクリプトを試してみたところ、これが見つかりました。値は変更されますが、フォームが送信されるため、ページがリロードされ、テキストが元に戻ります。

于 2013-04-11T10:26:27.557 に答える
1

何が起こっているかというと、あなたのボタンはtype = "submit". フォームを送信すると、ページがリロードされ、元の値が返されます。

フォームを送信したくない場合は、「Go」ボタンをtype = "button"

于 2013-04-11T10:29:15.033 に答える
0

使ってみてcl.innerHTML = 'Manchester';

編集:

Form タグにはアクションがないため、ページが更新されて元の値が返される可能性があります。フォーム送信イベントにreturn falseorを追加すると、フォームが送信されなくなります。preventDefault

于 2013-04-11T10:25:16.557 に答える
0

私は実際に自分でコードを試しましたが、innerHTML または innerText はどちらも機能しません @ben fossen したがって、これが追加される唯一の理由は、値が実際に変更されるためですが、フォームが送信され、値がリセットされます

于 2013-04-11T10:30:09.680 に答える