Jquery形式:sendbutton只有在满足2个条件时才会出现

时间:2013-12-21 00:30:59

标签: jquery forms email if-statement

我正在制作一个包含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();
        }
    });

    });

2 个答案:

答案 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脚本相等性很棘手。