-1

我遇到的问题是 JQuery 函数只有在我刷新网页时才有效,它在每个浏览器上都以这种方式工作。我想要做的是,一旦包含在特定 div 容器中的所有文本字段都在其中包含数据,我希望容器插入复选标记图像。但目前此图像仅在我在文本字段中输入所有数据并刷新浏览器后才可见。

.rightbilling 是 div 容器的类,我试图评估其文本字段,而“#step1”是包含 .rightbilling 的字段集。

我已经尝试解决这个问题好几个小时了。非常感谢您的帮助。如果您需要更多信息,请告诉我。

$(document.body).ready(function() {
        var all_complete = true;    
    $(".rightbilling").find("input:text").each(function(){


        if ($(this).val() == '' ) {
            all_complete = false;
            return true;
        };


    if (all_complete) {
        $("#step_1")
        .animate({
            paddingBottom: "120px"
        })
        .css({
            "background-image": "url(images/check.png)",
            "background-position": "bottom center",
            "background-repeat": "no-repeat"
        });

        $("#step_2").css({
            opacity: 1.0
        });
        $("#step_2 legend").css({
            opacity: 1.0 // For dumb Internet Explorer
        });
    };
});
4

2 回答 2

2

因为您使用的是 document.ready 函数,所以只有在页面加载时才会调用您的函数。您需要考虑附加一个 onChange 侦听器以在输入字段已更改时调用您的函数。

于 2012-07-17T18:22:05.620 回答
1
$(document.body).ready(
    function () {
        var validation = function () {
            var all_complete = true;
            $(".rightbilling").find("input:text").each(
                function () {
                    if ($(this).val() == '') {
                        all_complete = false;
                        return true;
                    }
                    if (all_complete) {
                        $("#step_1").animate({
                            paddingBottom: "120px"
                        }).css({
                            "background-image": "url(images/check.png)",
                            "background-position": "bottom center",
                            "background-repeat": "no-repeat"
                        });
                        $("#step_2").css({
                            opacity: 1.0
                        });
                        $("#step_2 legend").css({
                            opacity: 1.0 // For dumb Internet Explorer
                        });
                    }
            });
        }
        validation();  //call it when the page is loaded
        $(".rightbilling").find("input:text").on("change",validation); //call it when input changes
    }
);
于 2012-07-17T18:30:39.387 回答