将HTML值与jquery输入值进行比较

时间:2013-01-10 22:51:38

标签: javascript jquery string jquery-selectors

我觉得我错过了一些小事,但我似乎无法做到这一点。我正在验证允许用户更改其电子邮件的表单,并且还要确认他们没有重新输入他们已经拥有的相同电子邮件。

我玩了很多试图用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 个答案:

答案 0 :(得分:1)

您可以尝试if( $('#originalemail').text() == $('#emailnewemail').val() )

答案 1 :(得分:1)

我创建了jQuery,用于评估用户何时离开电子邮件输入字段$('#emailnewemail').blur(),并且还比较不区分大小写(.toLowerCase())的值,以便'my@email.com'被认为与'my@EMAIL.COM'相同。

$('#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/

答案 2 :(得分:0)

您可能想尝试使用jQuery提取值。我不确定为什么你决定回归这两行的原生JavaScript -

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

使用jQuery,这些行看起来像这样 -

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

Here is a little demo

答案 3 :(得分:0)

我意识到我的问题是我正在包装

行,因此包含了前导零。它看起来像下面。解决这个问题解决了这个问题,感谢所有人的帮助,我为糟糕的问题发帖道歉(对编码仍然很新,所以这样的语法仍然让我感到高兴)

<p id="originalemail">
    <?= htmlspecialchars($user[0]["email"]) ?></p>
相关问题