Javascript:;单击“;以及“;输入键“;

Javascript: Different response between "Click" and "Enter key"

本文关键字:输入 以及 单击 Javascript      更新时间:2023-09-26

我做了一个网站,用户在填写文本框后需要点击按钮。当他按下时,图像会发生变化(就像命令中的幻灯片一样)。我的问题是,当你触摸"回车"而不是用鼠标点击时,它不会产生渐变效果。

网站是这样的,所以你可以尝试:http://www.tuttoscorre.net/esame-storia-arte-moderna.php

我该怎么处理?

该网站的目的是将写在文本框中的答案存储在javascript数组中,以便在幻灯片放映(10张幻灯片)结束时显示。

这是按钮和幻灯片的代码:

    <script type="text/javascript">
        //Dichiaro Array Globale
        var risposte = new Array();
        var count = 0;
        $('.risultati').css({opacity: 0.0});
        //Salvo risposta, svuoto text, proseguo con le slide
        function conferma(frm) {
            if (frm.nome.value == "") alert("Non hai scritto nulla!");
            else {
                risposte[count] = frm.nome.value;
                count = count + 1;
                frm.nome.value = "";
                prossima();
            }
        }
        //Nuova slide sempre verso dx
        function prossima(frm) {
            var $active = $('#slideshow img.active');
            if (!$active.next('img').length) {
                risultati();
            } else {
                var $next = $active.next(); 
                $next.css({opacity: 0.0})
                    .addClass('active')
                    .animate({opacity: 1.0}, 1000, function() {
                        $active.removeClass('active');
                    });
            }
        }
        //Tolgo slide e mostro risultati
        function risultati() {
            $('#slideshow').animate({opacity: 0.0}, 1000);
            $('#compila').animate({opacity: 0.0}, 1000);
            $('#risultati').animate({opacity: 1.0}, 1000, function() {
                $('#risultati').addClass('visibile');
            });
            $('#1').append(risposte[0] + "<br/>Risposa corretta: " + "<?php echo $soluzioni[0]; ?>");
            $('#2').append(risposte[1]+ "<br/>Risposa corretta: " + "<?php echo $soluzioni[1]; ?>");
            $('#3').append(risposte[2]+ "<br/>Risposa corretta: " + "<?php echo $soluzioni[2]; ?>");
            $('#4').append(risposte[3]+ "<br/>Risposa corretta: " + "<?php echo $soluzioni[3]; ?>");
            $('#5').append(risposte[4]+ "<br/>Risposa corretta: " + "<?php echo $soluzioni[4]; ?>");
            $('#6').append(risposte[5]+ "<br/>Risposa corretta: " + "<?php echo $soluzioni[5]; ?>");
            $('#7').append(risposte[6]+ "<br/>Risposa corretta: " + "<?php echo $soluzioni[6]; ?>");
            $('#8').append(risposte[7]+ "<br/>Risposa corretta: " + "<?php echo $soluzioni[7]; ?>");
            $('#9').append(risposte[8]+ "<br/>Risposa corretta: " + "<?php echo $soluzioni[8]; ?>");
            $('#10').append(risposte[9]+ "<br/>Risposa corretta: " + "<?php echo $soluzioni[9]; ?>");
        }
    </script>

这是带有按钮的表单:

        <form id="compila">
                <input id="enterTxt" class="okText" type="text" name="nome" />
                <input id="enterButt" class="okIcon" type="Button" value="ok" onClick="conferma(this.form)">
            </form>

非常感谢。

您必须在发送表单的函数中的事件上使用.preventDefault()

文档

或者只使用:

$("#compila").submit(function() {
    conferma(this);
    return false;
});

我的答案使用JQuery。

将函数绑定到form.submit()而不是按钮。单击