2013-11-10 3 views
0

Я пытаюсь добавить значения json-объекта (name & color) в два поля ввода в форме. Это макет вызова api, который создается внутри моего веб-сервера. Функция jQuery принимает значение первого поля ввода, затем объединяет местоположение файла url + json и, наконец, вызывает вызов api. Консоль показывает, что значения извлекаются успешно, но я не уверен, как добавить их в соответствии с их полем ввода. SITEДобавление значений объекта json в поле ввода

Json:

{ 
    "name": "test1", 
    "color": "red", 
} 

JQuery/AJAX

$(document).ready(function() { 

    /** get the inputs we might need */ 
    var $result = $('#result'); 
    var $input = $('#input'); 

    $result.data('url', $result.val()); 

    var timer; 

    /** function to submit data to the server and 
     update the result input on success */ 
    function submitForm(input, newValue) { 
    $.ajax({ 
     type: "GET", 
     url: newValue, 
     data: {input:input}, 
     dataType: 'json', 
     success: function (data) { 
     $result.val(newValue); 
     } 
    }); 
    }; 

    /** on key up, fill #result with the url + input */ 
    $input.bind('keyup', function() { 
    var $this = $(this); 
    var inp = $this.val(); 
    var url = $result.data('url'); 
    var newValue = url + inp + '/info.json'; 

    if(timer) { clearTimeout(timer); } 
    timer = setTimeout(function(){ 
     submitForm(inp, newValue) ; 
    }, 500); 
    return false; 
    }); 
}); 
+0

Аякса réponse будет иметь JSON передается в файл 'data' аргумента, так что вам нужно перебирать, что - если ключ 'name', установите значение поля имени. – helion3

+0

'$ result.val (data.name)' или 'data.color' при необходимости другой – charlietfl

+0

@charlietfl Я пробовал это, но ничего не отображается – techAddict82

ответ

1

Я считаю, что проблема принимает элементы из объекта (из JSON) и дает эти значения на вход?

<input type="text" id="name"> 
<input type="text" id="color"> 

Основной пример:

var myobj = {"name":"botskonet","color":"blue"} 

for(k in myobj){ 
    document.getElementById(k).value = myobj[k]; 
} 

Fiddle

+0

OP уже показывает, что идентификаторы отличаются от клавиш json ... не знаю, как это решение поможет – charlietfl

+0

Имена не имеют большого значения. Вы можете использовать любое количество способов поиска правильного имени поля и т. Д. Я никогда не уверен, сколько всего кода кода просто упрощено для нас в любом случае. Он спросил: «Я пытаюсь добавить значения json-объекта (имя и цвет) к двум полям ввода в форме.», И я дал очень базовую демонстрацию. Я был бы рад принять его, если это не поможет – helion3

+0

+1 это отлично работает, теперь, если у меня есть 'var myobj = {" name ":" botskonet "," color ":" blue "," animal " : «gorilla»} 'и просто хотите отобразить' name' и 'animal', я получаю' getElementById' значение null. Как так? Это потому, что он проходит цикл for? – techAddict82

Смежные вопросы