【问题标题】:Form field validation using switch case inside for loop in javascript在javascript中使用for循环内的switch case验证表单字段
【发布时间】:2020-02-09 14:14:09
【问题描述】:

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


} 

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

【问题讨论】:

  • 打印document.form1.item_name.value、document.form1.price.value的值,看看是不是""

标签: javascript for-loop switch-statement


【解决方案1】:
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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多