<script type="text/javascript">
    $(function () {
        $("#ibtnOK").click(function () {
            var title = $("#txtTitle");
            if (title.val().length < 1) {
                title.focus();
                return false;
            }
            var money = $("#txtMoney");
            if (money.val().length < 1) {
                money.focus();
                return false;
            }
        });
    });
</script>
上面是两个针对 textbox 的验证,现在是两个,要重复两次。
如果是10个,就要重复10次。
我总感觉这个 JS 很普通的验证可以封装一下。
比如:
<script type="text/javascript">
    $(function () {
        $("#ibtnOK").click(function () {
            check($("#txtTitle"));
            check($("#txtMoney"));
        });
        function check(obj) {
            if (obj.val().length < 1) {
                obj.focus();
                return false;
            }
        }
    });
</script>但是我写的不行。一提交都回发了。
请高人指点,谢谢!

解决方案 »

  1.   

    需要定义个全局变量 。
    在click的方法里面return 。
      

  2.   


    能不能劳烦大哥小改动下代码,指出来应该怎么写。。
    你说的全局变量和在click里面return,我还是没有头绪。。十分感谢!!!。。
      

  3.   


    var inputs = $("#txtTitle,#txtMoney");
                inputs.each(function(){
                    if($(this).length < 1){
                        obj.focus();
                        return false;
                    }
                }); 也可以这样 循环验证 。
      

  4.   

        <script type="text/javascript">
            function check(controls) {
                for (var i = 0; i < controls.length; i++) {
                    var control = $(controls[i]);
                    if (control.val().length < 1) {
                        control.focus();
                        return false;
                    }
                }
                return true;
            }
            $(function () {
                $("#ibtnOK").click(function () {
                    return check(["#txtTitle", "#txtMoney"]);
                });
            });
        </script>
    大致是这样的,通过参数列表传
      

  5.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>zell419</title>
        <script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
    </head>
    <body>
        <script>
        var checkForm = function(){
            var inputs = $("#txtTitle,#txtMoney");
            var result = true ;
            inputs.each(function(i){
                if($(this).val().length < 1){
                    $(this).focus();
                    result = false;
                    return result;
                }
            }); 
            return result;
        }; 
        </script>
        <form onsubmit="return checkForm();">
        <input id="txtTitle" /><input id="txtMoney" />
        <br />
        
        <input type="submit" value="submit"/>
        </form>
    </body>
    </html>都差不多 。
      

  6.   


    谢谢!
    我根据情况改了下,可以focus,不完美的是紧接着就回发了。<script type="text/javascript">
        $(function () {
            $("#ibtnOK").click(function () {
                var inputs = $("#txtTitle,#txtMoney");
                inputs.each(function () {
                    if ($(this).val().length < 1) {
                        $(this).focus();
                        return false;
                    }
                });
            });
        });
    </script>