0

ユーザーがテキストボックスに入力した後にボタンをクリックする必要があるWebサイトを作成しました。彼が押すと画像が変化します(コマンドのスライドショーのようなものです)。私の問題は、マウスでクリックする代わりに「Enter」をタッチしても、フェード効果が得られないことです。

ウェブサイトはこれなので、試すことができます:http ://www.tuttoscorre.net/esame-storia-arte-moderna.php

これをどのように処理しますか?

このWebサイトの目的は、テキストボックスに書き込まれた回答を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>

どうもありがとう。

4

2 に答える 2

1

.preventDefault()フォームを送信する関数のイベントで使用する必要があります。

ドキュメンテーション

または、次のように使用します。

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

私の答えはJQueryを使用しています。

于 2012-09-09T19:43:29.947 に答える
1

関数をbutton.clickではなくform.submit()にバインドします

于 2012-09-09T19:35:41.373 に答える