我正在制作一个包含2个字段的表单:一个用于填写电子邮件地址的用户,另一个用于填写消息字段。 我在这个故事中的目标是:我希望只有在电子邮件地址中才能显示一个发送按钮@和a。在消息字段中写入内容时出现。 代码的结果如下: 当有@和a时,会出现sendbutton。写在emailfield中,这样就可以了......但是当消息字段为空时它也会出现 当我在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();
}
});
});
答案 0 :(得分:1)
.getElementsByClassName()
method返回一个(可能是空的)HTMLCollection元素,并且该集合没有.value
属性。因此,使用if
的{{1}}测试始终为真,因为message != ""
始终为message
。
您可以像这样获取集合中第一个元素的值:
undefined
或者既然你正在使用jQuery,你可以试试这个:
var message = document.getElementsByClassName("contactmessage")[0].value;
// add an index to get the first element -----------------------^
(或者从你描述你的消息字段的方式只有一个,所以你可以给它一个id而不是(或同样)一个类,并按id选择。)
答案 1 :(得分:0)
我认为你需要像这样改变你的状况
if(at != -1 && punt != -1 && message !=="")
Java脚本相等性很棘手。