Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 查找多个变量的值-JS_Javascript_Loops - Fatal编程技术网

Javascript 查找多个变量的值-JS

Javascript 查找多个变量的值-JS,javascript,loops,Javascript,Loops,我有以下JavaScript源代码: var Fname = document.getElementById("FirstName").value; var Lname = document.getElementById("LastName").value; var email = document.getElementById("Email").value; var password = document.getElementById("Pass").value; var reapeat =

我有以下JavaScript源代码:

var Fname = document.getElementById("FirstName").value;
var Lname = document.getElementById("LastName").value;
var email = document.getElementById("Email").value;
var password = document.getElementById("Pass").value;
var reapeat = document.getElementById("Repeat").value;
var area = document.getElementById("selectArea").value;

如果每个变量都是空的(
Fname==”
),有没有简单的方法检查它的?如果是,我应该怎么做?如果没有,最简单的方法是什么

如果要对循环执行此操作,则需要可循环的结构中的字段或值,例如数组:

var fields = ["FirstName", "LastName", "Email", "Pass", "Repeat", "selectArea"];

for (var i = 0; i < fields.length; i++) {
    if (document.getElementById(fields[i]).value === "") {
        alert("Please fill in all fields.");
        break; // or do whatever you like here.
    }
 }
var字段=[“FirstName”、“LastName”、“Email”、“Pass”、“Repeat”、“selectArea”];
对于(变量i=0;i
或者,您可以在标记中为元素提供一个公共类,如:

<input class="noblank" ...>

然后:

var fields = document.getElementsByClassName("noblank");
for (var i = 0; i < fields.length; i++) {
    if (fields[i].value === "") {
        alert("Please fill in all fields.");
        break; // or do whatever you like here.
    }
 }
var fields=document.getElementsByClassName(“noblank”);
对于(变量i=0;i

基于类的方法有点好,因为如果在html中添加更多必填字段,则根本不必更新JS。

ECMA5
version

var fields = ["FirstName", "LastName", "Email", "Pass", "Repeat", "selectArea"];

fields.some(function(value) {
    if (this.getElementById(value).value === "") {
        alert("Please fill in the blanks.");
        return true;
    }
}, document);
或者你可以构建另一个对象来表示缺失的对象

var fields = ["FirstName", "LastName", "Email", "Pass", "Repeat", "selectArea"];
var errors = {};

fields.forEach(function(value) {
    if (this.getElementById(value).value === "") {
        errors[value] = "Please fill in the blanks.";
    }
}, document);

这样您就可以访问
错误对象。

另一种解决方案是将
对象作为字典使用:

var obj = {
    Fname: document.getElementById("FirstName").value,
    Lname: document.getElementById("LastName").value,
    email: document.getElementById("Email").value,
    password: document.getElementById("Pass").value,
    reapeat: document.getElementById("Repeat").value,
    area: document.getElementById("selectArea").value
};
for (var key in obj) {
   if (obj[key]) { //or any other condition
      //do stuff
   }
};

看起来您正在尝试验证表单。通过使用jQuery之类的库,可以使任务变得更容易

但是,如果您想在纯JS中执行此操作,可以执行以下简单操作:

function formNotEmpty() {
    var i, fields = ['FirstName', 'LastName', ... ];

    for (i = 0; i < fields.length; i += 1) {
        if (fields[i] === '' || fields === null) {
            return false;
        }
    }
    return true;
}
函数formNotEmpty(){
变量i,字段=['FirstName','LastName',…];
对于(i=0;i
您可以让它变得非常复杂,查询DOM以动态获取字段,这样就不需要定义字段数组等


请注意,我使用了三重等于运算符(==),而不是双(==),请阅读此处的原因(以及更多提示)

谢谢,我更新了问题。该函数仅测试数组中字符串的值,而不是字段的值。空值检查用于什么?