【发布时间】:2013-12-21 00:30:59
【问题描述】:
我正在制作一个包含 2 个字段的表单:一个供用户填写他们的电子邮件地址,另一个是一个消息字段。
我在这个故事中的目标是:我想让一个发送按钮仅在电子邮件字段中出现 @ 和 a 时出现。出现 AND 当消息字段中写入某些内容时。
结果与代码在这里:
当有 @ 和 a 时,会出现发送按钮。写在电子邮件字段中,所以没关系...但是当消息字段为空时也会出现。
当我在 if 语句中只有一个变量时,该代码有效:
if(at != -1 && punt != -1) --> works;
if(message !="") --> works;
但是,当我将 2 合 1 If 语句(如下文所述)组合在一起时,它并不能按照我想要的方式工作。 我假设我必须以不同的方式编写我的 if 语句,但我不知道如何......有人有线索吗?
$(document).ready(function(){
$("#email, .contactmessage").keyup(function(){
var email = document.getElementById("email").value;
var message = document.getElementsByClassName("contactmessage").value;
//var email = $("#email").val();
var at = email.indexOf("@");
var punt = email.indexOf(".");
if(at != -1 && punt != -1 && message !="") {
$(".deel2").slideDown();
}
else
{
$(".deel2").slideUp();
}
});
});
【问题讨论】:
-
getElementsByClassName返回一个 NodeList 中的多个元素,就像一个数组。你无法获得它的价值,因为它不是一个单一的元素。您需要对其进行索引或循环。 -
如果只能有一个
contactmessage,为什么要使用类而不是ID? -
因为之前我在表单中有更多字段具有相同的 css 代码,现在实际上使用类不再有用了......但是使用类做到了这一点:var message = document.getElementsByClassName("contactmessage")[0].value;感谢您的反馈!
标签: jquery forms email if-statement