Javascript 比较两个表单电子邮件字段的值
我创建了一个需要电子邮件验证的表单。所以用户必须输入他们的电子邮件地址两次,如果他们不匹配,他们将无法提交。我只是通过比较email字段1和2的值来实现这一点。如果它们匹配,“禁用”将从提交按钮中删除 当我将值设置为“插入您的电子邮件地址”和“再次确认您的电子邮件地址”时,一切都很顺利。但是,为了用户不必删除该文本,我删除了该值,并在HTML中使用了“占位符”Javascript 比较两个表单电子邮件字段的值,javascript,forms,Javascript,Forms,我创建了一个需要电子邮件验证的表单。所以用户必须输入他们的电子邮件地址两次,如果他们不匹配,他们将无法提交。我只是通过比较email字段1和2的值来实现这一点。如果它们匹配,“禁用”将从提交按钮中删除 当我将值设置为“插入您的电子邮件地址”和“再次确认您的电子邮件地址”时,一切都很顺利。但是,为了用户不必删除该文本,我删除了该值,并在HTML中使用了“占位符” 现在的问题是,当你键入任何东西时,它返回的都是真的。我猜它是将空白值看作是相同的,但是它并没有在用户键入时对值的变化进行拾取。 为什么这
现在的问题是,当你键入任何东西时,它返回的都是真的。我猜它是将空白值看作是相同的,但是它并没有在用户键入时对值的变化进行拾取。
为什么这两个字段总是作为匹配项返回<html>
<body>
<form class="theForm">
<p> Subscribe to my mailing list</p>
<input type="text" id="name" class="fields" name="name" placeholder="Name">
<input type="text" id="email1" class="fields" name="email" placeholder="Email Address" >
<input type="text" id="email2" class="fields" placeholder="Confirm Email Address" >
<input name="submit" id="submit" class="fields" type="submit" disabled value="Email Addresses
Do Not Match">
</form>
<script>
function verify (){
console.log(`email1.value: ${email1}: Email2: ${email2}`);
if(document.getElementById("email1").value === document.getElementById("email2").value) {
document.getElementById("submit").removeAttribute("disabled");
document.getElementById("submit").style.backgroundColor = "#004580";
document.getElementById("submit").style.cursor = "pointer";
} else {
document.getElementById("submit").setAttribute("disabled", "disabled");
}
}
$(".fields").on("change paste keyup", verify);
</script>
</body>
</html>
订阅我的邮件列表
函数验证(){
log(`email1.value:${email1}:Email2:${Email2}`);
if(document.getElementById(“email1”).value==document.getElementById(“email2”).value){
document.getElementById(“提交”).removeAttribute(“禁用”);
document.getElementById(“提交”).style.backgroundColor=“#004580”;
document.getElementById(“提交”).style.cursor=“指针”;
}否则{
document.getElementById(“提交”).setAttribute(“禁用”、“禁用”);
}
}
$(“.fields”)。打开(“更改粘贴键”,验证);
而不是:
$(".fields").on("change paste keyup", verify)
尝试:
编辑:
那么:
$("#email2").blur(verify)
?而不是:
$(".fields").on("change paste keyup", verify)
尝试:
编辑:
那么:
$("#email2").blur(verify)
试试这个
订阅我的邮件列表
函数验证()
{
if(document.getElementById(“email1”).value==document.getElementById(“email2”).value){
警报(“匹配”)
}否则{
document.getElementById(“提交”).setAttribute(“禁用”、“禁用”);
警报(“不匹配”)
}
}
试试这个
订阅我的邮件列表
函数验证()
{
if(document.getElementById(“email1”).value==document.getElementById(“email2”).value){
警报(“匹配”)
}否则{
document.getElementById(“提交”).setAttribute(“禁用”、“禁用”);
警报(“不匹配”)
}
}
这种方式有效。您无法提交它。因此,删除“已禁用”的行出现“这是有效的。但是,即使按钮颜色和光标样式不匹配,它们仍然会更改,并且只有当它们匹配时才会更改。换句话说,在匹配之前按钮应该是灰色的。我已经对答案进行了编辑,让我知道这个是否有效:)那种有效。你不能提交它。因此,删除“禁用”的行似乎正在工作。但是,即使按钮颜色和光标样式不匹配,它们仍然会更改,并且只有当它们匹配时才会更改。换句话说,在匹配之前,按钮应该是灰色的。我已经对答案进行了编辑,请告诉我此选项是否有效:)