Javascript неопределенная функция .. но она действительно определена - PullRequest
0 голосов
/ 08 декабря 2011

У меня на странице работает несколько функций.Первый вызывается событием onclick из поля выбора, которое выполняет эта функция, затем вызывает другую функцию. Zip () эта функция запускает небольшой скрипт.Если пользователь оставляет поле пустым, функция должна быть вызвана функцией checkit () в качестве метода проверки, который возвращает неопределенное значение при втором вызове. Первый вызов из colorchange () работает ..

function colorchange(value){
    if (value != ''){
        document.getElementById('delivery').style.borderColor="#000000";
    }
    else{
        document.getElementById('delivery').style.borderColor="#ff0000";
    }
    if (value == 'deliver'){
    zip();
}
}

function checkit(){

    var x=document.forms["pricing_form"]["delivery"].value;
        if (x==null || x=="")
          {
          alert("Please Choose Delivery Method");
          return false;
          }

        if (document.getElementById('delivery').value == 'deliver'){
            alert ('deliver');
            zipcode = document.getElementById('zip') == '';

            if (zipcode == '' || zipcopde == null || zipcode == 'false'){
                alert('please enter a valid zip code');
                zip();
                return false;
            }
        }
}

function zip(){

    var zip = prompt("Ship-To Zip Code", "");

    if (zip != null && zip != ''){
        document.getElementById('zip').value=zip;
        }
        alert (document.getElementById('zip').value);

}

Я переименовал поля следующим образом, чтобы этот скрипт работал правильно

function colorchange(value){
    if (value != ''){
        document.getElementById('delivery').style.borderColor="#000000";
    }
    else{
        document.getElementById('delivery').style.borderColor="#ff0000";
    }
    if (value == 'deliver'){
    zip_get();
}
}

function checkit(){

    var x=document.forms["pricing_form"]["delivery"].value;
        if (x==null || x=="")
          {
          alert("Please Choose Delivery Method");
          return false;
          }

        if (document.getElementById('delivery').value == 'deliver'){
            alert ('deliver');
            zipcode = document.getElementById('zip') == '';

            if (zipcode == '' || zipcode == null || zipcode == 'false'){
                alert('please enter a valid zip code');
                zip_get();
                return false;
            }
        }
}

function zip_get(){

    var zip_entry = prompt("Ship-To Zip Code", "");

    if (zip_entry != null && zip != ''){
        document.getElementById('zip').value=zip;
        }
        alert (document.getElementById('zip').value);

}

1 Ответ

3 голосов
/ 08 декабря 2011
if (zipcode == '' || zipcopde == null || zipcode == 'false'){

Вы уверены, что это метод undefined или zipcopde?

Я также довольно набросал, называя функции так же, как переменные - гораздо более опасный в JavaScript, чем внекоторые другие языки;возможно нет.Здесь должно быть все в порядке, но все же.

...