Убедитесь, что в выпадающем списке выбран вариант - PullRequest
0 голосов
/ 20 декабря 2010

С http://www.greekforme.com/999-apron-01.html, есть несколько выпадающих списков.

Сценарий «verifyselection» должен отображать всплывающее окно, если пользователь не меняет выпадающий список «Выберите параметр ниже»

function verifyselection(form) 
{
    // result function
    var blnResult = true;
    // temp name form control
    var nameControl = "";
    // array of name of radio form controls
    var arrNameControl = new Array();
    // array of value checked of radio form controls
    var arrValueControl = new Array();
    // flag existence form control in array
    var isExistOnArray = false;

    // loop on all elements of form
    for(i=0; i<form.elements.length; i++) {
        // check type form control
        if(form.elements[i].type=="radio") {
            // save name form control
            nameControl = form.elements[i].name;
            // reset flag existence form control in array
            isExistOnArray = false;
            // loop on all found radio form control
            for(j=0; j<arrNameControl.length; j++){
                // if giving form control is exist in array
                if(arrNameControl[j] == nameControl) {
                    // set flag
                    isExistOnArray = true;
                    // break loop
                    break;
                }
            }
            // if giving form control is not exist in array
            if(isExistOnArray == false){
                // set index of array
                j = arrNameControl.length;
                // add new element to arrays
                arrNameControl[j] = nameControl;
                arrValueControl[j] = 0;
            }
            // if giving radio form control is checked
            if(form.elements[i].checked == "1"){
                arrValueControl[j] = 1;
            }
        }
                    if ((form.elements[i].selectedIndex > -1)) {
                            if (form.elements[i].selectedIndex == 0) {
                                    var opttext = form.elements[i].value.toLowerCase();
                                    if (opttext.indexOf('optional') < 0) {        
                                            blnResult = false;
                                            alert('Please select one of the options from the list');
                                            break;
                                    }
                            }

                    }
    }
    // loop on all found radio form control
    if(blnResult==true) {
                    for(j=0; j<arrNameControl.length; j++){
                // if radio group form control is checked
                if(arrValueControl[j] != 1) {
                   // set result function
                   blnResult = false;
                   // show error message
                   alert('Please select one of the options from the list');
                   break;
                   }
           }
            }
    // return result function
    return blnResult;
}

В настоящее время я могу получить всплывающее окно, которое отображается при нажатии кнопки «Добавить в корзину» -

Но ... он по-прежнему добавляет товары в корзину.

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

1 Ответ

0 голосов
/ 20 декабря 2010

Откуда вы вызываете эту функцию?Если он находится в обработчике отправки, обработчик должен вернуть false.Таким образом, вы должны иметь это где-то в своем коде:

form.onsubmit = function() {
    return verifyselection(this);
}

Или в html:

<form onsubmit="return verifyselection(this);" ...>

Важной вещью здесь является часть return.Когда обработчик возвращает false, действие по умолчанию не будет выполнено.В этом случае форма не будет отправлена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...