JQuery доступ к флажку в существующей функции - PullRequest
0 голосов
/ 19 марта 2012

Я унаследовал некоторый код, и в нем есть некоторая проверка формы jquery. Я должен добавить флажок на страницу и хотел бы использовать существующий код для его проверки, но я не уверен, как ссылаться на флажок в этой функции.

function initValidation() {
    $('.validate-form').each(function(){
        var form = $(this);
        var successFlag = true;
            // Added the input:checkbox
        var inputs = form.find('input:text, input:password, input:checkbox, textarea, select');

        function validateForm() {
            successFlag = true;

            inputs.each(checkField)

            if(!successFlag) {
                return false;
            }
        }

        // check field
        function checkField(i, obj) {
            var currentObject = $(obj);
            var currentParent = currentObject.parents('div.row');

            // not empty fields
            if(currentObject.hasClass('required')) {
                setState(currentParent, currentObject, !currentObject.val().length)
            }            
        }
        // setState stuff
    })
}   

Затем я установил флажок "class = required-checkbox" и попытался добавить

        if(currentObject.hasClass('required-checkbox')) {
            setState(currentParent, currentObject, currentObject.checked == FALSE);
        }           

что не сработало, я тоже попробовал

        if(currentObject.hasClass('required-checkbox')) {
            setState(currentParent, currentObject, currentObject(0).checked == FALSE);
        }           

и

        if(currentObject.hasClass('required-checkbox')) {
            setState(currentParent, currentObject, currentObject[0].checked == FALSE);
        }   

Очевидно, что никто из них не прав. Может кто-нибудь сказать мне, как я могу проверить этот флажок? Мне просто нужно знать, проверено ли это или нет.

ТИА!

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

Если я вас правильно понимаю, это может помочь:

// If it's a checkbox and has the class "required"
if(currentObject.attr("type") == "checkbox" && currentObject.hasClass("required"))

Или

    // Returns true/false if it's checked or not.
    currentObject.is(":checked");

Или

    // Check it.
    currentObject.attr("checked", "checked");

Или

    // Uncheck it.
    currentObject.removeAttr("checked");
0 голосов
/ 19 марта 2012

Измените его на ...

if (currentObject.hasClass('required')) {
    setState(
            currentParent,
            currentObject, 
            currentObject.is(':checkbox') ? ! currentObject.prop('checked')
                                          : ! currentObject.val().length
            )
}  

Затем просто добавьте класс required к элементу флажка input.

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