使用javascript中的for循环内的切换用例进行表单字段验证

问题描述 投票:0回答:2

[在我的HTML中,我创建了一个具有两个属性的表单-item nameitem price,以及一个按钮,该按钮的onclick()事件将调用javascript函数temp()。以下是我所附的javascript代码:

function temp(){


var a = 2
var b = 4;
var f = [a,b];
for(var i = 0; i <= f.length-1;i++)
{
    switch(f[i])
    {
        case f[0]:
            if (f[0] == 2) {
             alert("hell");
              }
            break;
        case f[1]:
            if (f[1] == 4) {
                alert("hello");
            }
            break;
    }
}

这在我单击一个按钮时分别正确显示两个警报消息-“ hell”和“ hello”。问题与下面的代码:

function temp() {
var a = document.form1.item_name.value;
var b = document.form1.price.value;
var f = [a,b];
for(var i = 0; i <= f.length-1;i++)
{
    switch(f[i])
    {
        case f[0]:
            if (f[0] == "") {
             alert("hell");
              }
            break;
        case f[1]:
            if (f[1] == "") {
                alert("hello");
            }
            break;
    }
}


} 

此代码两次提醒“地狱”,但如何?

javascript for-loop switch-statement
2个回答
0
投票
The reason is that your first switch case of f[0] is always going to be satisfied and alert 'hell'

this works as anticipated:
    switch(i)
    {
        case 0:
            if (f[0] == "") {
             alert("hell");
              }
            break;
        case 1:
            if (f[1] == "") {
                alert("hello");
            }
            break;
    }
}

0
投票

您的开关盒的工作方式如下:-

switch("")
{
case ""
Alert hell
break
case ""
Alert hello
break
}

所以您的第一个案例总是很满意。也不要混淆开关,如果一起使用,请使用两者之一。

© www.soinside.com 2019 - 2024. All rights reserved.