我的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>
有没有办法将它们变成单个变量?
答案 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!");
}
});
}
这种方法的优点:
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
}