0

何か小さなものが欠けているように感じますが、これを機能させることができないようです。ユーザーが電子メールを変更できるフォームを検証しています。特に、既に持っているのと同じ電子メールを再入力していないことを確認したいと考えています。

id="originalemail" を使用して p の値を取得しようといろいろ試しましたが、入力された値と比較して、文字列が同一であることを反映する形式で取得できないようです。どんな助けでも大歓迎です。

簡単にするために、入力された新しい電子メールが現在存在する (元の) 電子メールと一致するかどうかに基づいてのみ検証するように関数をトリミングしました。

JS/jquery:

<script>
function validateEmailChange()
{
    // set comparison
    var originalemail=document.getElementById("originalemail").innerHTML;
    var newemail=document.forms["emailform"]["emailnewemail"].value;

    if (newemail == originalemail)
    {
        $('#emailnewemailoff').html("Same as current email address");
        $('#emailconfirmationoff').html("");
        return false;
    }
</script>

HTML:

// show the user's current email
<p id="originalemail"><?= htmlspecialchars($user[0]["email"]) ?></p>

<form id="emailform" name="emailform" onsubmit="return validateEmailChange()" 
              action="email.php" method="post">

<input id="emailnewemail" name="emailnewemail" placeholder="New Email" type="text"/>
<input type="submit" value="Change Email" class="btn"/>

本当にありがとう!

4

4 に答える 4

1

ユーザーが電子メール入力フィールドから移動したときに評価するjQuery を作成し$('#emailnewemail').blur()( .toLowerCase()'。

$('#emailnewemail').blur(function() {
    if ($('#originalemail').text().toLowerCase() === $('#emailnewemail').val().toLowerCase()) {
        $('#emailnewemailoff').html("Same as current email address");
        $('#emailconfirmationoff').html("");
        return false;
    } else {
        $('#emailnewemailoff').html("Not the same email address");
    }
});

実際の例については、 http://fiddle.jshell.net/jhfrench/EZp6R/を参照してください。

于 2013-01-10T23:26:19.097 に答える
1

あなたは試すことができますif( $('#originalemail').text() == $('#emailnewemail').val() )

于 2013-01-10T22:58:05.050 に答える
0

私の問題は私がラッピングしていたことだと気づきました

その結果、先行ゼロが含まれていました。以下のようになりました。これを修正することで問題は解決しました。ご協力いただきありがとうございます。悪い質問の投稿をお詫びします(コーディングはまだ新しいので、このような構文でも問題は解決します)

<p id="originalemail">
    <?= htmlspecialchars($user[0]["email"]) ?></p>
于 2013-01-10T23:40:40.670 に答える
0

jQuery を使用して値を抽出してみてください。この 2 行をネイティブ JavaScript にフォールバックすることにした理由がわかりません -

var originalemail=document.getElementById("originalemail").innerHTML;
var newemail=document.forms["emailform"]["emailnewemail"].value;

jQuery を使用すると、これらの行は次のようになります。

var originalemail = $("#originalemail").text();
var newemail = $("#emailnewemail").val();

ここに小さなデモがあります

于 2013-01-10T22:59:23.653 に答える