Skip to content

How can access input value in django view through AJAX without form submission

I am beginner in django.I am working on a single text box in a django form which have number of fields.I wrote AJAX code for passing each value(entered from keyboard). How can i access this value in django class based view code. I want to save this value into a variable. Here i am trying to check given text is already existing or not. checking is done for each keyboardinput.

$(document).ready(function () {
    $('#s_id > input').on('input',function(e){
        console.log(e);
        s_text = e.target.value;
        $.ajax({
            type: 'POST',
            url: "{% url 'create-studentpage' %}",
            data: s_text,

            success: function (response) {
                console.log("response", response);
                
            },
            error: function (response) {
                console.log("error", response.responseJSON.error);
                
                
            }
        })
    });

Answer

You should change the format of data you have in a json format so that you can embed csrf_middleware_token into the POST :

$(document).ready(function () {
    $('#s_id > input').on('input',function(e){
        console.log(e);
        s_text = e.target.value;
        $.ajax({
            type: 'POST',
            url: "{% url 'create-studentpage' %}",
            data: {"text": s_text, 'X-CSRFToken': {{csrf_token}} },

            success: function (response) {
                console.log("response", response);
                
            },
            error: function (response) {
                console.log("error", response.responseJSON.error);
                
                
            }
        })
    });

And then in backend, you can access it by using request.POST["text"]