[Answer]-Django request.GET does not contain name of submitted form button

1👍

Ok, this is more of an HTML/jQuery problem than a Django one.

First, your first form works because presumably you let the browser handle the submit. If you use a similar code to the one provided, it does not work.

If you log $(this).serialize() you get precisely what you get on the backend. Check out this answer jQuery: how to get which button was clicked upon form submission?

<form class="email_citations" id="EmailCitationsForm" action="email_it" method="get">

    <input class="input-text" type="text" size="75" maxlength="75" style="width: 40%; font-size: 16px; margin-right: 5px; height: 50px" name="email_address" placeholder="email address">
    <button type="submit" value="selected_citations" name="selected_citations" class="form_button button inline large hover" id="exportButton4" >Send My Selected Citations</button>
    <button type="submit" value="all_citations" name="all_citations" class="form_buttonbutton inline large hover" id="exportButton5">Send All Citations</button>

</form>

Notice I’ve removed the django bits.

$(document).ready(function(){
    console.log("hello from email.js");
    $('.email_citations').submit(function(event){
        console.log("submit email");
        var clicked_button = $(".form_button[clicked=true]")[0].name;
        console.log(clicked_button);
        var email_address = $(this).val();
        var data = $(this).serialize();
        data += "&" + clicked_button;
        console.log(data);
        $.ajax({
            data: $(this).serialize(),
            type: $(this).attr('method'),
            url: $(this).attr('action'),
            success: function(data){
                $('.email_sent_message').html(JSON.parse(data).submit_message);
            }
        });
        return false;
    });
    $(".form_button").click(function() {
        $(".form_button").removeAttr("clicked");
        $(this).attr("clicked", "true");
    });
});

Or see in plunker http://plnkr.co/edit/CxPGmxQfeHhtsWiANDJ1

Leave a comment