Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript如果为空,是否不工作?_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript如果为空,是否不工作?

Javascript如果为空,是否不工作?,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,因此,如果表单为空,我尝试更改提交按钮的颜色。所以我不确定我做错了什么,因为我是个新手,但这是我目前的代码 我的部分形式 <div class="field"> <input type="email" placeholder="Email"> </div> <div class="submit"> <input type="submit" value="Reset Password"> </div> 有什么想法吗 if

因此,如果表单为空,我尝试更改提交按钮的颜色。所以我不确定我做错了什么,因为我是个新手,但这是我目前的代码

我的部分形式

 <div class="field">
<input type="email" placeholder="Email">
</div>
<div class="submit">
<input type="submit" value="Reset Password">
</div>
有什么想法吗

if ($('#field').is(':empty')){
    $("#submit").css({"backgroundColor":"black"});

}
您必须关闭“#字段”上的paren,以便获得一个jquery对象,以便在其上运行
is
函数

另外,您的“字段”是一个类而不是id,因此您需要一个
而不是
选择器

当然,所有这些还取决于您将类
字段
移动到输入,因为您实际上不想在div上检查
是否为空

因此,您实际上希望用整个代码来实现这一点:

<div>
    <input class="field" type="email" placeholder="Email">
</div>
<div>
    <input class="submit" type="submit" value="Reset Password">
</div>

if ($('.field').is(':empty')){
    $(".submit").css({"backgroundColor":"black"});
}

如果($('.field')。是(':empty')){
$(“.submit”).css({“backgroundColor”:“black”});
}

您在jQuery中指定了id,而它应该是类-

if ($('.field'.is(':empty'))){ // field is a class, not an id, extra parentheses needed
     $("#submit").css({"backgroundColor":"black"});
 }
但是,您应该做的是检查email字段的值,因为输入会使字段“不为空”,这意味着上述将永远无法工作

您需要做的是检查输入的值是否有任何长度,输入的容器不相关:

if(!$('input[name="email"]').val().length) {
    $('#submit').css({"backgroundColor":"black"});
}
编辑:在OP使他的愿望更清晰(验证电子邮件)后完成代码-

$('input[name=“email”]”)。更改(函数(){
//用于验证电子邮件地址的正则表达式
变量正则表达式=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\+\)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.];
var validEmail=regex.test($(this.val());
if(true==validEmail){
$('#提交').css({
“背景”:“#中交”,
“颜色”:“黑色”
});
}
});

字段
是一个类,其中存在语法错误。
'field'
后面缺少右括号 尝试:

类以点(.)开头 我先从哈希开始#


这就是您的错误

您的代码中存在一些语法错误,使其无法正常执行:

  • 当您实际分配了
    字段
    的div a时,您正在查询id为
    字段的DOM对象。将查询更改为
    $('.field')
    ,它应该可以工作
  • 在调用jQuery函数
    $
    时,您忽略了关闭参数,这将阻止它正确返回要调用
    is()
    方法的jQuery对象
  • 您正在使用jQuery
    :empty
    伪选择器检查您的div是否输入了任何值,但这不是此函数的预期用途。相反,您应该直接在输入本身上使用
    val()
    方法来检查输入本身是否输入了任何内容,并将其作为条件
  • 您正在使用
    #submit
    id查询提交按钮,但您的提交输入未分配任何id。您可以为其分配
    #submit
    id,也可以通过其
    类型
    属性进行查询
  • 更正这些错误后,您的代码应如下所示:

    if (!$('.field > input').val()){
      $("input[type='submit']").css("backgroundColor", "black");
    } 
    

    您可以查看工作代码

    可能在
    #field
    之后缺少一个右括号?field和submit都是类。。如果($('.field'.is(':empty'){$(“.submit”).css({“backgroundColor:“black”});}'field'在OP的示例中是一个类,并且只要输入在其中,它就永远不会是空的,那么试着这样做。你能提交小提琴或其他东西吗?我似乎无法改变颜色……但这不会起作用,因为.field从来都不是空的。
    $('.field')).val()==始终未定义。这是因为您尚未命名您的输入。它必须有一个名称,如name=“email”(fiddle coming)。你确定吗?当我加载页面时,它不会显示黑色的“提交”按钮,而是默认按钮。我不确定你是否理解我试图实现的目标。当页面加载时,它将是一种颜色,但当填充空白字段时,它会改变。在我的问题中,我认为它是另一种方式,但它仍然等于相同的颜色ng.我正在尝试做一些类似于iCloud网站的事情,两个字段都必须填写,然后submit按钮会改变颜色啊!所以你想要与你最初要求的相反…让我改变一些事情。添加了一个链接作为示例。在前面的评论中是更新的小提琴。你必须设置原始条件,然后h对元素进行更改操作
    
    $('input[name="email"]').change(function () {
        // regex to validate e-mail address
        var regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        var validEmail = regex.test( $(this).val() );
        if(true == validEmail) {
            $('#submit').css({
                "background": "#CCCCCC",
                "color": "black"
            });
        }
    });
    
    if ($('.field').is(':empty')){
         $("#submit").css({"backgroundColor":"black"});
     } 
    
    if (!$('.field > input').val()){
      $("input[type='submit']").css("backgroundColor", "black");
    }