$.getJSON не работал внутри $(‘#’).click(функция()

#django #jquery

#джанго #jquery — запрос #django #jquery

Вопрос:

я новичок в jquery.Я делаю некоторый ajax, используя jquery в django.

 $(document).ready(function() {
     $.getJSON('/jsonserver/', function(json){
    alert("JSON Data: "   json);
    });
  

Приведенный выше jquery сработал для меня. Когда я помещаю то же самое в функцию click кнопка, она успешно вызывает URL-адрес, но предупреждение не отображается.

    $(document).ready(function() {
          $('#save').click(function(){          
           $.getJSON('/jsonserver/', function(json){
            alert("JSON Data: "   json);
                });

          });   
    });
<form method ="POST" method =/jqueryserver/ name ="form1" id ="form1">
    <input type= "submit" id = "save" name ="save" value ="Save" />
</form>
  

view.py

 def jsonserver(request):
    print "...jsonserver..."
    json = simplejson.dumps('hello world!')
    return HttpResponse(json, mimetype = 'application/json')
  

Ответ №1:

Поскольку $("#save") это кнопка отправки, нажатие этой кнопки приведет к отправке формы и обновлению страницы.

Что вы хотите сделать, так это «перехватить» это, предотвратив запуск событий браузера по умолчанию.

Это можно сделать следующим образом:

 $('#save').click(function(e) {
   e.preventDefault();
   $.getJSON('/jsonserver/', function(json){
      alert("JSON Data: "   json);
   });
});
  

Комментарии:

1. Эта проблема является проблемой, даже если кнопка не является кнопкой отправки …. и e.preventDefault решает ее…