3

問題があります...検証のためにすべての入力フィールドデータを取得しようとしていますが、.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;
        });


});
4

1 に答える 1

2

私は推測しているだけですが、おそらくあなたは間違った文脈にいます。

ページに同じ名前の入力が複数ある場合は、どれを使用する必要があるかを jQuery に伝える必要があります。

送信コールバックthisでは、フォーム要素を参照します。したがって、次のようになります。

var user_name = $("input[name=user_name]", this);
var user_password = $("input[name=user_password]", this);
于 2013-02-25T10:58:32.983 に答える