jquery .val()从html输出默认输入字段值,而不是用户输入的值

时间:2013-02-25 10:55:36

标签: jquery validation

我有一个问题...我正在尝试获取所有输入字段数据以进行验证,但.val()从html返回默认值而不是输入的用户。也许是因为我在这个剧本里面已经完成了?我无法弄清楚...并且在jsfiddle上做得更好它有效! :S

$(document).ready(function() {


        //Login Ajax
        $("#loginform").submit(function(){
            var url = $(this).attr("action");

            //Get input variables
            var user_name = $("input[name=user_name]");
            var user_password = $("input[name=user_password]");

                        //border control
                        if (user_name.val() == "username" && user_password.val() == "password") {
                            user_name.addClass("error");
                            user_password.addClass("error");
                            return false;
                        } else {
                            user_name.removeClass("error");
                            user_password.removeClass("error");
                        }

                            if (user_name.val() == "username") {
                                user_name.addClass("error");
                                return false;
                            } else {
                                user_name.removeClass("error");
                            }

                        if (user_password.val() == "password") {
                            user_password.addClass("error");
                            return false;
                        } else {
                            user_password.removeClass("error");
                        }

            return false;
        });


        //Registration Ajax
        $("#regsitrationform").submit(function(){
            var url = $(this).attr("action");


            return false;
        });


});

1 个答案:

答案 0 :(得分:2)

我只是猜测,但也许你处在错误的背景下。

如果页面上有多个具有相同名称的输入,则必须告诉jQuery应该使用哪一个。

在您的提交回调中,this引用表单元素。所以你可能看起来像这样:

var user_name = $("input[name=user_name]", this);
var user_password = $("input[name=user_password]", this);