【问题标题】:Jquery form: sendbutton may only appear when 2 conditions are fulfilledJquery表单:发送按钮可能仅在满足2个条件时出现
【发布时间】: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


【解决方案1】:

.getElementsByClassName() method 返回一个(可能为空的)HTMLCollection 元素,并且该集合没有.value 属性。因此,您使用 message != "" 进行的 if 测试将始终为真,因为 message 将始终为 undefined

你可以像这样获取集合中第一个元素的值:

   var message = document.getElementsByClassName("contactmessage")[0].value;
   // add an index to get the first element -----------------------^

或者既然你使用的是 jQuery,你可以试试这个:

    var email = $("#email").val();
    var message = $(".contactmessage").val();

(或者从您描述消息字段的方式来看,只有一个,因此您可以给它一个 id 而不是(或以及)一个类并按 id 选择。)

【讨论】:

  • 太棒了!这样做了: var message = document.getElementsByClassName("contactmessage")[0].value;谢谢!
【解决方案2】:

我认为你需要像这样改变你的条件

    if(at != -1 && punt != -1 && message !=="")      

Java 脚本相等性很棘手。

【讨论】:

    猜你喜欢
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多