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



我有个问题。。。我试图获取所有输入字段数据进行验证,但.val((从html返回默认值,而不是用户输入的值。也许是因为我在domready里面有这个脚本?我想不通。。。为了在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;
        });

});

我只是猜测,但可能你的上下文不对。

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

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

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

最新更新