基于单击保存按钮的Flask AJAX Update

时间:2013-10-28 20:11:58

标签: jquery ajax flask

您好我正在尝试让AJAX根据单击的按钮更新表中的字段。我从Flask网站上拿到了这个例子,我正在尝试修改它 现在我只是传递昵称和生日列,我希望javascript做类似的事情:

$.getJSON( '/update_profile2', {
    e.attr('id'): e.val(),

我尝试了一些事情,但总是打破它。我需要做些什么来使JS成为保存的可调用函数,如:

<p><a href="" id=save onclick=submit_fn($("#birthday") >Save</a> 

当前HTML:

     <input type=text size=5 name=nickname id="test" value="{{ profile['nickname']|default('TEST') }}">
     <span id=result></span></p><p>
     <a href="" id=save  >Save</a>     

     <input type=text size=5 name=birthday id=birthday value="{{ profile['birthday']|default('') }}">

     <button id="submitbtn" name="submitbtn" onclick=submitfn1($("#birthday")>SAVE</button>

     <span id=result2></span><p><a href="" id=save  >Save</a> 

当前Javascript:

$(function() {
var submit_form = function(e) {


  $.getJSON( '/update_profile2', {
      nickname: $('input[name= "nickname"  ]').val(),
      birthday : $('input[name="birthday"]').val(),
  }, function(data) {
    $('#result').text(data.nickname);
    $('#result2').text(data.birthday);
    $('input[name=a]').focus().select();
  });
  return false;
};

$('a#save').bind('click', submit_form);

$('input[type=text]').bind('keydown', function(e) {
  if (e.keyCode == 13) {
    submit_form(e);
  }
});

$('input[name=nickname]').focus();
});

由于

1 个答案:

答案 0 :(得分:0)

我能够让这个工作。我在使用getJSON时遇到了一些麻烦但是能够在Stack上拼凑答案。如果有人可以改进,请做。

function createJSON(className) {
function loadData(link, dataIn)
{
    var data = $.getJSON(link, dataIn);
    return data;
}
var myClass = className;
 $("input[class=" + className + "]").each(function() {
    var value = $(this).val();
    var item = [];
    item[0] = $(this).attr('name') + "=" + value ;
    var result;

    for(var i = 0; i< item.length; i++)
        {
        (function(i){
            loadData('/update_profile', item[i]).done( function(data) {
                     $.each( data, function( key, val ) {
                      var x = ('#' + key);
                     $(x).text(val);
                     $('#result2').text(val);
                     });

        $('input[name=nickname]').focus().select();
                });
            })(i);
        }

});

$('input[name=nickname]').focus();

};