Javascript 将所有变量合并为一个变量

Javascript 将所有变量合并为一个变量,javascript,jquery,Javascript,Jquery,我的JavaScript代码中有五个变量。我想把所有这些变量合并成一个变量 我的五个变量: var description = $("#description").val(); var keywords = $("#keywords").val(); var author = $("#author").val(); var robots = $("#robots").val(); var revisit_after = $("#revisitafter").val(); 我希望将所有这些变量

我的JavaScript代码中有五个变量。我想把所有这些变量合并成一个变量

我的五个变量:

var description = $("#description").val();
var keywords =  $("#keywords").val();
var author = $("#author").val();
var robots = $("#robots").val();
var revisit_after = $("#revisitafter").val();
我希望将所有这些变量组合成一个变量,如下所示:

var all_fields = title,description,keywords,author,robots,revisit_after ;
if(all_fields == "")
{
alert('Empty Field detected');
}
var arr = [];
var empty = false;
var description = $("#description").val();
var keywords =  $("#keywords").val();
var author = $("#author").val();
var robots = $("#robots").val();
var revisit_after = $("#revisitafter").val();

arr.push(description, keywords, author, robots, revisit_after);
如果这样做有效,我可以很容易地验证输入字段,如下所示:

var all_fields = title,description,keywords,author,robots,revisit_after ;
if(all_fields == "")
{
alert('Empty Field detected');
}
var arr = [];
var empty = false;
var description = $("#description").val();
var keywords =  $("#keywords").val();
var author = $("#author").val();
var robots = $("#robots").val();
var revisit_after = $("#revisitafter").val();

arr.push(description, keywords, author, robots, revisit_after);
HTML:






有没有办法将它们合并到一个变量中?

如果要检查它们是否都有值,请使用
&&

var all_fields = title && description && keywords && author && robots && revisit_after;
if(!all_fields)
{
    alert('Empty Field detected');
}

这是因为
&&
检查一个值是否为“truthy”,这意味着它具有某种类型的值(请阅读更多内容,它有点复杂)。因此,如果其中任何字段为空,则会使
所有_字段
为false。一个限制是,如果其中一个具有值
0
,这在技术上是一个值,但不是“truthy”。但是,我相信jquery的
val()
总是返回一个字符串,而且
“0”
是真实的。

如果要检查它们是否都有值,请使用
&&

var all_fields = title && description && keywords && author && robots && revisit_after;
if(!all_fields)
{
    alert('Empty Field detected');
}
这是因为
&&
检查一个值是否为“truthy”,这意味着它具有某种类型的值(请阅读更多内容,它有点复杂)。因此,如果其中任何字段为空,则会使
所有_字段
为false。一个限制是,如果其中一个具有值
0
,这在技术上是一个值,但不是“truthy”。然而,我相信jquery的
val()
总是返回一个字符串,而
的“0”
是真实的。

试试对象文本

var all_fields = {
    "title": title,
    "description": description,
    "yada" : yada    
}
尝试对象文字

var all_fields = {
    "title": title,
    "description": description,
    "yada" : yada    
}

由于不知道是否允许更改,我个人会在您所做的任何事情的末尾编写一个新数组,类似这样:

var all_fields = title,description,keywords,author,robots,revisit_after ;
if(all_fields == "")
{
alert('Empty Field detected');
}
var arr = [];
var empty = false;
var description = $("#description").val();
var keywords =  $("#keywords").val();
var author = $("#author").val();
var robots = $("#robots").val();
var revisit_after = $("#revisitafter").val();

arr.push(description, keywords, author, robots, revisit_after);
然后检查你的数组

arr.each(function(i){
    if(arr[i] == ""){
        empty = true;
    }   
});

if(empty) console.log("Something is missing");
或者,如果您喜欢更快的代码,请使用for循环:

for(var i = 0; i <= arry.length; i++){
    if(arr[i] == ""){
        empty = true;
    }  
}

if(empty) console.log("Something is missing");

for(var i=0;i不知道是否允许更改此值,我会在您所做的任何事情的末尾亲自编写一个新数组,如下所示:

var all_fields = title,description,keywords,author,robots,revisit_after ;
if(all_fields == "")
{
alert('Empty Field detected');
}
var arr = [];
var empty = false;
var description = $("#description").val();
var keywords =  $("#keywords").val();
var author = $("#author").val();
var robots = $("#robots").val();
var revisit_after = $("#revisitafter").val();

arr.push(description, keywords, author, robots, revisit_after);
然后检查你的数组

arr.each(function(i){
    if(arr[i] == ""){
        empty = true;
    }   
});

if(empty) console.log("Something is missing");
或者,如果您喜欢更快的代码,请使用for循环:

for(var i = 0; i <= arry.length; i++){
    if(arr[i] == ""){
        empty = true;
    }  
}

if(empty) console.log("Something is missing");

for(var i=0;i您可以使用jQuery根据字段类型枚举它们,并验证它们是否为空,而不是手动将它们全部放入数组中:

function check() {
    $("input[type='text']").not(".no-verify").each(function (i, element) {
        if ($(this).val() == "") {
            alert("Empty field detected!");
        }
    });
}

这种方法的优点:

  • 根据需要添加/删除字段
  • 易于添加要检查的字段类型和为每个字段运行的自定义代码
  • 很容易改变什么是“空”什么不是
  • 通过添加类
    no verify
    ,将字段从空值检查中排除

  • 您可以使用jQuery根据字段类型枚举它们并验证它们是否为空,而不是手动将它们全部放入数组中:

    function check() {
        $("input[type='text']").not(".no-verify").each(function (i, element) {
            if ($(this).val() == "") {
                alert("Empty field detected!");
            }
        });
    }
    

    这种方法的优点:

  • 根据需要添加/删除字段
  • 易于添加要检查的字段类型和为每个字段运行的自定义代码
  • 很容易改变什么是“空”什么不是
  • 通过添加类
    no verify
    ,将字段从空值检查中排除


  • 字符串连接:
    title+description+…
    我认为您可能需要阅读初学者教程,了解对象和数组,它们是JavaScript复合类型。我认为连接在这种情况下对您没有帮助。@ShifarShifz:您的问题下有一个编辑按钮。请使用它发布其他代码。@shifarShifz:当你在那里的时候,也许可以去掉呼喊声。:-)还要澄清:您想检查其中是否有一个是空的,还是所有的都是空的?字符串连接:
    title+description+…
    我想您可能需要阅读初学者教程,了解对象和数组,它们是JavaScript复合类型。我不认为连接在这种情况下对您有帮助。@ShifarShifz:你的问题下面有一个编辑按钮。请用它来发布其他代码。@ShifarShifz:当你在那里时,也许可以删除呼喊。:-)还要澄清:你想检查其中是否有一个是空的,还是所有的都是空的?如果(all_fields==“”){alert('Some field missing!');},我能用这个吗。对这件事不太了解。jus开始学习了!如果(all_fields==“”){alert('Some field missing!');},我可以用这个吗。对这件事不太了解。jus开始学习了@罗伯特罗萨斯:限制的一个很好的例子。:-)(在你的评论出现前半秒删除了我的评论…“我相信jquery的val()总是返回字符串…”FWIW:
    val
    总是作为字符串(集合中第一个元素的值)返回,如果jquery对象(集合)中有任何元素,则调用它。如果集合中没有任何元素,它将返回
    undefined
    。无论如何@xdumain,您的答案需要润色…也是最接近操作要求的答案(编辑:太晚了…)。@RobertRozas它不需要润色。这是一个很好的答案。它提供了一个与OP试图实现的功能类似的语言基本功能示例,而不是一些将在所有边缘情况下提交和测试的代码。@RobertRozas:一个限制的好例子。:-)(在你的评论出现前半秒删除了我的评论…“我相信jquery的val()总是返回字符串…”FWIW:
    val
    总是作为字符串(集合中第一个元素的值)返回,如果jquery对象(集合)中有任何元素,则调用它。如果集合中没有任何元素,它将返回
    undefined
    。无论如何@xdumain,您的答案需要润色…也是最接近操作要求的答案(编辑:太晚了…)。@RobertRozas它不需要润色。这是一个很好的答案。它提供了一个与OP试图实现的功能类似的语言基本功能的示例,而不是一些将在所有边缘情况下提交和测试的代码。这太棒了!!非常感谢你。。Muaaww:@ShifarShifz请记住,如果您有一个可以为空的字段,则该字段仍然为“vali”