Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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_Html_Null - Fatal编程技术网

如何在Javascript中检查空值?

如何在Javascript中检查空值?,javascript,html,null,Javascript,Html,Null,我正在研究一种检索表单中隐藏输入数组的方法,如下所示 <input type="hidden" value="12:34:00" name="timetemp0"> <input type="hidden" value="14:45:00" name="timetemp1"> <input type="hidden" value="15:12:00" name="timetemp2"> <input type="hidden" value="16:42:

我正在研究一种检索表单中隐藏输入数组的方法,如下所示

<input type="hidden" value="12:34:00" name="timetemp0">
<input type="hidden" value="14:45:00" name="timetemp1">
<input type="hidden" value="15:12:00" name="timetemp2">
<input type="hidden" value="16:42:12" name="timetemp3">
<input type="hidden" value="16:54:56" name="timetemp4">
<input type="hidden" value="17:03:10" name="timetemp5">

我的javascript函数使用getElementsByName('timetemp'+i)分别检索这些

(i;i<计数器[0]。值;i++)的

{
//通过使用基名称加计数器的串联查找隐藏元素
var timetemp=document.getElementsByName('timetemp'+i);
//如果有一个对用户有价值的价值警报-这只是为了目前的测试目的
//因为只有一个timetemp.i,所以它在数组中占据位置0
if(timetemp[0]。值==null)
{
警报(“无值”);
}
其他的
{
警报(timetemp[0]。值);
}
}
因此,应该发生的是,它会提醒用户该隐藏输入中的值,但如果它遇到的输入没有这样的值:

<input type="hidden" value="" name="timetemp16">

然后它会说“没有价值”

但是,th if函数似乎无法处理此问题:

我试过:

  • (timetemp[0]。值==null)
  • (timetemp[0]。值===null)
  • (timetemp[0]。值==未定义)
  • (timetemp[0]。值=“”)
  • 它似乎总是默认为else子句


    有什么想法吗?

    首先,我会检查
    I
    初始化到什么,看看
    getElementsByName
    返回的元素是否与您认为的相同。可能通过使用硬编码名称(如
    timetemp0
    )来解决问题,而不使用串联。您还可以通过浏览器调试器(,)运行代码

    此外,对于您的if条件,这应该足够:

    if (!timetemp[0].value) {
        // The value is empty.
    }
    else {
        // The value is not empty.
    }
    

    Javascript中的空字符串是一个错误的值,因此对该值的逻辑求反将使您进入if块。

    您的脚本在几个地方似乎不正确

    试试这个

    var timetemp = document.getElementsByTagName('input');
    
    for (var i = 0; i < timetemp.length; i++){
        if (timetemp[i].value == ""){
            alert ('No value');
        }
        else{
            alert (timetemp[i].value);
        }
    }
    
    var timetemp=document.getElementsByTagName('input');
    对于(变量i=0;i
    例如:

    以下是我所改变的:

  • 首先通过
    标记名
    获取所有
    输入
    s。这将生成一个数组
  • 使用
    var
    初始化
    i
    ,然后使用
    timetemp.length
    属性在
    timetemp
    数组中循环
  • 使用
    timetemp[i]
    引用
    for语句中的每个
    输入

  • for循环中的计数器似乎不正确(或者我们缺少一些代码)

    此代码:

    //Where is counter[0] initialized?
    for (i ; i < counter[0].value; i++)
    
    var timeTempCount = 5; //I'm not sure where you're getting this value so I set it.
    
    for (var i = 0; i <= timeTempCount; i++)
    
    //计数器[0]在哪里初始化?
    对于(i;i<计数器[0]。值;i++)
    
    应替换为:

    //Where is counter[0] initialized?
    for (i ; i < counter[0].value; i++)
    
    var timeTempCount = 5; //I'm not sure where you're getting this value so I set it.
    
    for (var i = 0; i <= timeTempCount; i++)
    
    var timeTempCount=5//我不确定你从哪里得到这个值,所以我设置了它。
    对于(var i=0;i注释作为答案:

    if (timetime[0].value)
    
    这是因为JS中的任何变量都可以作为布尔值进行计算,因此这通常会捕获空的、null的或未定义的内容。

    在我看来,使用“if(value)”来判断值是否为空值并不严格,因为当v的值为0(0不是空值)时,“v?true:false”的结果为假。您可以使用此功能:

    const isEmptyValue = (value) => {
        if (value === '' || value === null || value === undefined) {
            return true
        } else {
            return false
        }
    }
    

    只需尝试
    if(timetime[0].value)
    mayhelp@RichardD你的解决方案非常有效!我希望我能给你分数,你能回答我的问题吗?也许我会接受你的答案?很奇怪,当你这样做时,你的代码不起作用。
    。value=''
    ,只是用一个固定的数字替换了计数器。它工作得很好。你错了,我为什么要找到我想要的所有答案nputs,我的表单中有50多个输入,我只想找到timetemp0,timetemp1,timetemp2-这不适合这个!足够公平@sqlmole。但不需要大喊大叫。我只是想帮你。我是根据你的问题回答的,没有提到其他输入。对于其他元素/属性,
    .length
    错误为null。I最后修改成这样:
    return(${jsElement}&${jsElement}.length>0)
    您如何知道OP需要为XHTML进行验证?
    不是绝对的要求。我使用HTML5,但感谢您提供了代码示例,以防将来使用XTHML 1.1