2012-04-04 69 views
0

我在页面上有一个网格。当我点击行 - 项目数据显示在对话框(jQuery的对话框UI插件)内的项目数据编辑窗体。 问题是在点击对话框“保存”按钮后,用新的用户输入从html中获取数据项。 这里是我的代码:与jQuery模板插件的问题

$('#OutLookAccountsGrid').on('click', 'span.btnOutlookAccountEdit', function() { 


    //getting data from grid row 
    var account = $(this).tmplItem().data; 
    //populating edit template with data 
    var tbl = $('#outlookaccountEditFormTmpl').tmpl(account); 

    //displaying edit form inside dialog 
    tbl.dialog({ 
     modal: true, 
     width: 400, 
     buttons: { 
      "Yes": function() { 
       var $this = $(this); 

       //PROBLEM!!! PROBLEM!!! PROBLEM!!! 
       //want to get values from user, but instead getting old values 
       //populated from grid row 
       var data = $.tmplItem(this).data; 

       //... 
       //want to send tmplItem with new values throught ajax as data param 
       //... 

      } 
     } 
    })//end of dialog 

}) 

是有可能得到的对象与新的价值?

回答

0

这个问题的答案:jquery模板只能以一种方式将数据绑定到html上:从数据到html,因此输入更改对数据没有任何影响。 (有一些名为jquery.datalink的插件试图将对象链接到模板,但据我所知它不适用于当前版本的teplate插件) 因此,在用户插入输入值之后获取更改数据的唯一方法是:

$.tmplItem(this).data["UserName"] = $this.find('input.outlusernm').val(); 

这将使数据项目发生变化