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

时间:2014-07-25 17:28:02

标签: javascript jquery

我的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');
}

HTML:

<input type="text" class="text_boxes" placeholder="Title" id="title"><br> 
<input type="text" class="text_boxes" placeholder="Description" id="description"><br> 
<input type="text" class="text_boxes" placeholder="author" id="author"><br> 
<input type="text" class="text_boxes" placeholder="Keywords" id="keywords"><br>

有没有办法将它们变成单个变量?

4 个答案:

答案 0 :(得分:2)

不知道你是否被允许改变这一点,我会亲自在你正在做的事情的最后写一个新数组,如下所示:

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");

答案 1 :(得分:2)

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

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

JSFiddle

这种方法的优点:

  1. 根据需要添加/删除字段。
  2. 轻松添加要检查的字段类型以及为每个字段运行的自定义代码。
  3. 很容易改变构成&#34;空&#34;什么没有。
  4. 通过添加课程no-verify排除字段,以检查空值。

答案 2 :(得分:1)

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

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

这是有效的,因为&&检查一个值是&#34;真实的&#34;这意味着它具有某种价值(详细说明,它有点复杂)。因此,如果其中任何一个为空,则会使all_fields为假。一个限制是,如果其中一个具有值0,这在技术上是一个值,但不是&#34; truthy&#34;。但是,我相信jquery的val()始终会返回一个字符串,而"0" 是真的。

答案 3 :(得分:0)

尝试对象文字。

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