Проверка поля формы с использованием регистра переключателя внутри для цикла в JavaScript - PullRequest
0 голосов
/ 12 октября 2019

В моем HTML я создал форму с двумя атрибутами - item name и item 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;
    }
}

, когда я просто нажимаю кнопку, это правильно отображает два предупреждающих сообщения - «ад» и «привет» соответственно. Проблема с кодом ниже:

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;
    }
}


} 

этот код предупреждает "ад" дважды, но как?

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

Ваш случай переключения работает следующим образом: -

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

Таким образом, ваш первый случай удовлетворяется каждый раз. Также не перепутайте переключатель, и если вместе, используйте либо.

0 голосов
/ 12 октября 2019
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;
    }
}
...