控件放在页面上后调用dataInit和dataEvents

时间:2015-03-10 09:57:48

标签: jquery jqgrid

我有一个jquery自动完成,并在我的网格中添加了jquery添加弹出窗口。 我希望在自动完成(用户列)选择的基础上填充选择的(adrs列)值,即ajax应该对后端进行自动完成选择并获得所选的结果。 为此,我希望在填充自动完成后调用所选的dataInit。

我怎么能这样做,因为一旦弹出窗口就会调用dataInit。

我正在关注的步骤

  1. 在用户开始输入时填充用户自动填充。
  2. 直到这个时候,选择的adrs已经在DOM上使用了。
  3. 预期行为: 1.从用户自动完成下拉列表中选择用户 2.在ajax调用中发送所选用户值,这将有助于填充所选下拉列表。

    问题:

    1. 如何在ajax调用中为所选的adrs使用所选用户。
    2. 我希望在选择user之后填充/刷新选择的结果。我正在使用dataInit,不确定是否必须使用任何其他dataEvents。
    3. 谢谢..

          {name:"user",index:"user",editoptions:{
           dataInit: function (elem) {
                                   setTimeout(function(){   
      
                                  var dataSrc= function(request, response,term) {  
                                              $.ajax({
                                                  //this will populate autocomplete
                                          };
                                         $(elem).autocomplete({
                                             source: dataSrc,
                                             minLength: 3
                                         });
                                   },50);
                           }
      }
      },
      {name:"adrs",index:"adrs",edittype:'select','editoptions': {
                          dataInit: function (elem) {
      
      
                                  var optionBlank = document.createElement('option');
                                  optionBlank.text = "esefasd1" ;
                                  optionBlank.value = "ds1fas" ;
                                  elem.add(optionBlank);
                                                              var option = document.createElement('option');
                                  option.text = "esefasd" ;
                                  option.value = "dsfas" ;
                                  elem.add(option);
      
      
                              $(elem).chosen();
                           }//END Dataint
      
                          }}
      

      我想为adrs列启动一个ajax,它会将选定的用户作为输入。到目前为止,这个选择只会弹出一个弹出窗口。我想在选择用户后填充它。

2 个答案:

答案 0 :(得分:0)

您可以通过在autocomplete中包含setTimeout的来电来解决问题:

dataInit: function (elem) {
    setTimeout(function () {
        $(elem).autocomplete({...});
    }, 50);
}

答案 1 :(得分:0)

感谢Oleg的支持。 我通过调用用户dataEvents(类型:'blur')中的方法来填充选择的adrs并在此方法中调用“selected:updated”。