3

I have some HTML that Django is rendering well. I'd like to click a button on the HTML and have that cause an event to fire in the view.

It doesn't look like the button is causing the post to fire. I'm not sure what I'm doing wrong.

This is my views.py code:

def log(request):
  if not request.POST:
    template = loader.get_template('log.html')
    html = template.render(Context())
    return HttpResponse(html)
  print "Post"

This is my log.html:

<!DOCTYPE html>
<html>
<head>
    <title></title>
<script type="text/javascript">
    $("#update_log_button").bind("button", function(){
        $.post("hello");
        return false;
    });
</script>
</head>
<body>
<p>
    <span>SPHIINX Log</span>
</p>
<p>
    <textarea cols="2" name="log" rows="25"></textarea>
     <input id="update_log_button" name="update_log" type="button" value="Update Log"/>
</p>
</body>
</html>

1 Answer 1

3

Is there a reason Why you are not using the click event directly?

Try this:

<script type="text/javascript">
  $(function(){
    $("#update_log_button").click(function(){
        $.post(
         url : "/hello/",
         dataType:"html",
         success: function(data, status, xhr){
            //do something with your data
        }
        );
        return false;
    });
 });
</script>

If the button is dynamically created then you may want to use the bind function to attach click event handler to the element:

<script type="text/javascript">
   $(function(){
    $("#update_log_button").bind('click', function(){
        $.post(
         url : "/hello/",
         dataType:"html",
         success: function(data, status, xhr){
            //do something with your data
        }
        );

        return false;
    });
   });
</script>

Try this URL to include the JQuery library:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
Sign up to request clarification or add additional context in comments.

9 Comments

Probably not I have changed the answer...Mind the url. Change to what you are using!
That didn't work for me either. I'm sure, it is my lack of understanding of JS / AJAX.
What is the easiest way to get my views.py to respond to a button click from the .html?
Sure, I get: No Javascript on this page If <script> tags have a "type" attribute, it should equal "text/javascript" or "application/javascript". Also scripts must be parsable (syntactically correct).
I guess you script tags are fine but where is you jquery lib?
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.