0

私がやろうとしていることは:

ユーザーにメールを入力してもらいます。有効でない場合。エラーを表示します。有効なメールの場合は、.wizarddivを上にスライドさせて、「Cool」というメッセージを表示します。

今のところ、私のコード(ここではフィドル)はそれをカットしていません。.errorクラスを入力に追加したり、.wizarddivを表示したりしていないようです。私は何が間違っているのですか?別の目をいただければ幸いです。

 $(".wizard").hide();
 $("#signup").show();

$(".continue").click(function () {
    var valid = true;
    $("#" + $(this).attr("validationDiv")).find("input").each(function () {
        if (!/^S+@S+.S+$/.test($this).val()) valid = false; // if its not a valid email
            ($this).addClass('error'); // show error
            ($this).val('Please Insert a valid Email');          
    });
    if (valid) { // if it is valid
         $(".wizard").slideUp(); // have this div show
         $("#" + $(this).attr("data-next-id")).slideDown();
     }
});

ありがとうございました!

4

3 に答える 3

1

まず最初に、jQuery と JavaScript を実際に学習しておく必要があります...

$thisする必要があります$(this)。さらにclassed/id、正しい要素名を使用していません。機能していないのも不思議ではありません。修正された例を次に示します: http://jsfiddle.net/HvjtB/28/

次に、正しいメール検出正規表現を作成する必要があります: http://www.regexper.com/

于 2013-03-11T03:59:19.977 に答える
1

うっかりミスが多いようです

$(".wizard").hide();
$("#signup").show();

$(".continue").click(function() {
    var valid = true;
    var that = this;
    $("#" + $(this).attr("validationDiv")).find("input").each(function() {
        var $this = $(this);
                if (!/^S+@S+.S+$/.test($(this).val()))
                    valid = false;
                ($this).addClass('error');
                ($this).val('Please Insert a valid Email');
            });
    if (valid) {
        $(".wizard").slideUp();
        $("#" + $(that).attr("data-next-id")).slideDown();
    }
});

デモ:フィドル

私が見つけた問題1. 属性で示される
id を持つ要素がないので、先頭に div( )を追加し ます 2. 内側のコールバックで、何度も使用しましたが、定義されていませんでした。signupvalidationDivid="signup"class="sighUp"
$thisvar $this = $(this);

于 2013-03-11T04:01:21.040 に答える
0

ウィザードを下にスライドさせる必要があるときに、ウィザードを上にスライドさせています。

于 2013-03-11T03:56:53.240 に答える