HTML文本输入条件提交

时间:2015-09-17 18:11:44

标签: javascript php jquery html

我有一个页面可以在每次刷新时加载随机MP3文件。用户必须通过文本形式输入基于声音猜测名称。我想检查他们对存储的字符串的输入,并刷新页面,如果它是正确的。否则,我不会给他们一个不正确的提醒,并保持在同一页面,以便他们可以再次猜测:

<div class="ui-widget" align="center">
<form method="post" action="" class="answer_box" onsubmit="return submit();">
    <p>Which hero is it?  <input id="tags" name="guess"  /></p>
    <script>
        var key = <?php echo json_encode($rand_key) ?>;
        var info = document.getElementById("guess").value;

        function submit() {
            if (key==info){
                alert('Correct!');
                return true;
            }
            else {
                alert('Incorrect!');
                returnToPreviousPage();
                return false;
            }
        }
    </script>

</form>
</div>

现在,无论输入如何,它都会将信息提交到新页面。 javascript警报也没有显示(我怀疑他们确实显示,但页面然后刷新,他们消失)。关键变量是PHP数组随机取值的关键,info应该是用户输入的文本。

3 个答案:

答案 0 :(得分:6)

发现问题:

  1. 你不能使用submit作为函数名称,这是一个HtmlForm对象
  2. document.getElementById("guess").value;正在寻找ID为“guess”且不存在的元素。
  3. 我会像这样重写你的脚本:

    <script>
        var key = <?php echo json_encode($rand_key) ?>;
    
        function my_submit(curr) {
            var info = curr.guess.value;
            if (key == info) {
                alert('Correct!');
                return true;
            }
            else {
                alert('Incorrect!');
                returnToPreviousPage();
                return false;
            }
        }
    </script>
    
    <form onsubmit="return my_submit(this);">
        <p>Which hero is it? <input id="tags" name="guess"/></p>
    </form>
    

答案 1 :(得分:2)

你有问题:

<input id="tags" name="guess" />

idtags,而不是guess

您应该使用document.getElementById("tags").value

答案 2 :(得分:2)

您正在尝试检索ID为&#34; guess的元素的值。&#34;将其更改为&#34;标记。&#34;

var info = document.getElementById("tags").value;

另外,正如@CodeGodie所提到的,您需要将函数名称更改为提交以外的其他名称。