0

1つのメール入力フォームでスプラッシュページを設定しています。

現在、ユーザーがメールを入力すると、フォームはすぐにフェードアウトし、ありがとうメッセージがフェードインしてフォームを置き換えます。私がやりたいのは、数秒後に「ありがとう」をフェードアウトさせてから、フォームをフェードインさせることです。

私はそれを実現することができます、それはフォームが最初に入力された電子メールで戻ってくるということです、そして私は電子メールアドレスを元のプレースホルダーテキストに置き換える方法を見つけようとして大変な時間を費やしています。

これがfromです:

<form action="" method="post" id="sendEmail">
    <div class="forms">
        <div class="buttons" id="buttons">
            <button type="submit" id="submit"></button>
            <input type="hidden" name="submitted" id="submitted" value="true"
            />
        </div>
        <div class="text_box" id="text_box">
            <input type="text" name="emailTo" id="emailTo" value="   Your Email Here"
            onfocus="this.value=''" />
        </div>
    </div>
</form>
<div class="answerBox">
    <div style="display:none;" id="thanks">Thank you!</div>
</div>

そして、これは私がフェードインを処理するために使用しているJqueryであり、検証が成功した後にフェードアウトします。

if (hasError == false) {
    $.post("adduser1.php", {
        emailTo: emailToVal
    }, function (data) {
        $(".buttons").fadeOut(200);
        $(".text_box").fadeOut(200, function () {
            $("#thanks").fadeIn(200)
        });
    });
}
return false;

私はこれを試しました:

$.post("adduser1.php", {
    emailTo: emailToVal
}, function (data) {
    $(".buttons").fadeOut(200);
    $(".text_box").fadeOut(200, function () {
        $("#emailTo").text("   Your Email Here", function () {
            $("#thanks").fadeIn(200))
        });

しかし、それは機能しません。

何か案は?

4

1 に答える 1

0

まず、要素で#emailToあるため影響を受けません。に置き換えます:.text<input>.text.val

$("#emailTo").val("   Your Email Here")

次に#thanks.fadeIn、 .text(または.val)の変更の最後にバインドしようとしています。これはインスタントアクションであるため、これは不要です(また、適切なjQuery構文ではないと思います)。$("#thanks").fadeIn(200)次の行に配置するだけです。

function (data) {
  $(".buttons").fadeOut(200);
  $(".text_box").fadeOut(200, function () {
    $("#emailTo").val("   Your Email Here")
    $("#thanks").fadeIn(200))
  });
}

実例:jsFiddle

于 2013-01-27T08:01:38.740 に答える