javascript - Login Ajax form not working, redirecting to another page -
i have created ajax form handle errors in login form, instead of showing errors in form area, directs me page json error response
<div class="container-fluid bg-primary" id="login"> <div class="row"> <div class="col-lg-3 text-center"> </div> <div class="col-lg-6 text-center"> <h1> </h1><h3> </h3> <h2 class="section-heading">login profile</h2> <hr> </div> <div class="col-lg-3 text-center"> </div> <h2> </h2> <h2> </h2> <h2> </h2> </div> <div class="col-md-4 col-md-offset-4 "> <form id='loginform' action='/users/login/' method='post' accept-charset='utf-8'> {% csrf_token %} <fieldset > <div class="form-group"> <input type="text" name="mobile_number" id="mobile_number" tabindex="1" class="form-control" placeholder="mobile number" value=""> </div> <div class="form-group"> <input type="password" name="password" id="password" tabindex="2" class="form-control" placeholder="enter password"> </div> </fieldset> <button type="submit" class="btn btn-primary btn-xl btn-block">log in</button><br><br> <span class="login-error"></span> <h1> </h1><h1> </h1> </form> </div>
my ajax code
$("#loginform").on('submit', function(event) { event.preventdefault(); alert("was preventdefault() called: " + event.isdefaultprevented()); console.log("form submitted!"); var url = "/users/login-ajax/"; $.ajax({ type: "post", url:url, data: $("#loginform").serialize(), success: function(data) { console.log(data); var result = json.stringify(data); if(result.indexof('errors')!=-1 ){ console.log(data); if(data.errors[0] == "mobile number , password don't match") { $('.login-error').text("mobile number , password don't match"); } else if(data.errors[0] == "entered mobile number not registered") { $('.login-error').text("entered mobile number not registered"); } } else { window.open("/users/profile/"); } //var result = json.stringify(data); // console.log(result); } }) });
my code action in views.py
def login(request): if request.method == 'post': mobile_number = request.post.get('mobile_number', '') password = request.post.get('password', '') data = {} user_queryset = user.objects.filter(mobile_number=mobile_number) if len(user_queryset) == 0: data['error'] = [] data['error'].append("entered mobile number not registered") # return jsonresponse(data) elif len(user_queryset) == 1: email = user_queryset[0].email user = auth.authenticate(email=email, password=password) if user not none: auth.login(request, user) else: data['error'] = [] data['error'].append("mobile number , password don't match") return jsonresponse(data)
Comments
Post a Comment