Любопытный: действительно ли возможно иметь динамические имена переменной данных Ajax?

Что касается концепций программирования, МОК / инжекция Зависимости в 1988 с корнями в 1983. У Fowler есть некоторые примечания по истории понятия на его Bliki.

9
задан Trevor Filter 20 August 2009 в 09:20
поделиться

2 ответа

Если я правильно вас понял, это то, что вам нужно:

jQuery.fn.updateChanges = function(){

   this.bind('blur',function(){    

      var data = {};
      data[$(this).attr("name")] = $(this).val();

      $.post('/ajax/updateValue.php',
        data,
        function(ret){
           if (ret=='success') alert("all good!");
        }    
   }    
}

Ваша основная проблема заключалась в попытке использовать динамическое значение с использованием обозначения литерала объекта, что вы не можете сделать без возврата к действительно плохим методам (например, использование eval (), где eval () не принадлежит;).

var myObj = { 'n1': 'v1' };

эквивалентно:

var myObj = {}; // {} = new Object();
myObj['n1'] = 'v1';

эквивалентно:

var myObj = {},
    myKey = 'n1',
    myVal = 'v1';

myObj[myKey] = myVal;
20
ответ дан 4 December 2019 в 11:07
поделиться

попробуйте следующее:

jQuery.fn.updateChanges = function(){

   this.bind('blur',function(){

      var inputName = $(this).attr("id");
      var inputValue = $(this).val();
      var data = eval("{"+ inputName  +":"+ inputValue  +" }");

      alert("send: "+ inputName+"\n"+data[inputName]);

      $.post('/ajax/updateValue.php',
        data, function(ret){
           if (ret=='success') alert("all good!");
        }

   }

}
-1
ответ дан 4 December 2019 в 11:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: