Отправка формы Javascript после проверки

Этот скрипт работает в основном так, как мне хотелось бы: оповещать, когда не установлен флажок радио. Однако, если все кнопки выбраны, мне нужна форма для отправки ... вот где я повесил трубку. Прямо сейчас, если все поля и кнопки выбраны, я все равно получаю оповещение с помощью var alertMsg. Есть идеи?

function submitform() {
    var sizeChoice = ""
    var size = document.store.on1.length
    var fontChoice = ""
    var len = document.store.on2.length
    var materialChoice = ""
    var material = document.store.on3.length
    var treatmentChoice = ""
    var treatment = document.store.on4.length
    var a = document.forms["store"]["item_name"].value;
    var alertMsg = "Please Choose a:"
    for(i = 0; i < size; i++) {
        if(document.store.on1[i].checked) {
            sizeChoice = document.store.on1[i].value
        }
    }
    for(i = 0; i < len; i++) {
        if(document.store.on2[i].checked) {
            fontChoice = document.store.on2[i].value
        }
    }
    for(i = 0; i < material; i++) {
        if(document.store.on3[i].checked) {
            materialChoice = document.store.on3[i].value
        }
    }
    for(i = 0; i < treatment; i++) {
        if(document.store.on4[i].checked) {
            treatmentChoice = document.store.on4[i].value
        }
    }
    if(a == null || a == "") alertMsg += "\n" + "Name" + "\n";
    if(sizeChoice == "") {
        alertMsg += "Size" + "\n"
    }
    if(fontChoice == "") {
        alertMsg += "Font" + "\n"
    }
    if(materialChoice == "") {
        alertMsg += "Material" + "\n"
    }
    if(treatmentChoice == "") {
        alertMsg += "Treatment" + "\n"
    } {
        alert(alertMsg)
    };
    return false;
    document.forms["form"].submit();
};
 elclanrs30 мая 2012 г., 04:46
У вас есть синтаксическая ошибка в последний разif утверждение, похоже на дополнительную скобку. Также, чтобы вы зналиi является глобальным, вы можете определить его где-нибудь.

Ответы на вопрос(4)

Решение Вопроса

онец вашего кода с:

if(treatmentChoice == "") {
    alertMsg += "Treatment" + "\n"
} {
      alert(alertMsg)
};
return false;
document.forms["form"].submit();

чтобы:

if(treatmentChoice == "") {
    alertMsg += "Treatment" + "\n"
}
if(alertMsg.length > 16) {
    alert(alertMsg);
    return false;
} else {
    document.forms["form"].submit();
}

Проверка длины проверяет окончательную длину значения alertMsg на соответствие исходному значению.

Ваше возвращение до отправки формы строки, поэтому он никогда не будет вызван.

У вас есть возврат до отправки формы. Это может быть частью проблемы.

Кроме того, вам не хватает еще одного в последнем операторе if.

 30 мая 2012 г., 04:48
+1 оператор return блокирует выполнение любого другого кода, который идет после него.
var alertMsg = "";

//....

if(alertMsg) {
    alert("Please Choose a:" + alertMsg);
} else {
    document.forms["form"].submit();
}

; к каждому утверждению.

 30 мая 2012 г., 04:48
xdazz, мне не ясно, как это помогает. Вы можете уточнить? (Кроме точки с запятой;) согласен на 100%)
 30 мая 2012 г., 04:46
alertMsg начинается как & quot; Пожалуйста, выберите: & quot ;, так когда же оно будет оценено как ложное?
 30 мая 2012 г., 04:52
@ j08691 Я пропустил, отредактировал сейчас.

Ваш ответ на вопрос