2013-07-21 2 views
0

Я работаю над проектом, который хотел использовать jquery, но выяснилось, что обязательно писать в dojo, я никогда с ним не работал раньше имея некоторые проблемы с чтением онлайн о том, как его использовать.Доджо эквивалент следующего кода jquery

Ниже приведен код, который я использовал:

<script> 
     window.onload = function() { 
      getManager($("#team_name").val()); 
     } 

     function getManager(team) { 
      $.ajax({ 
       type: "POST", 
       url: "getManager.php", 
       data: {team:team} 
      }).done(function(manager) { 
       $("#manager_name").val(manager); 
      }); 
     } 
</script> 

По существу, есть выпадающий <selection> поля, когда выбран (и на окне загрузки) он должен предварительное заполнение поле только для чтения поля ниже его основой по которым команда указана. Смотрите скриншот ниже для лучшей идеи:

screenshot http://i41.tinypic.com/2mmcu34.png

Я выше код прекрасно с JQuery работает, я не могу найти эквивалент для додзё.

Это HTML для выбора поля:

<select name="team" id="team_name" onchange="getManager(this.value)" type="text" readonly>

и это код для поля ввода текста:

<input name="manager_name" id="manager_name" type="text" readonly/>

Код обязательным записываться в додзе, так как остальная часть страницы , если есть способ переопределить додзё с jquery?

+2

Какова ваша версия додзё? – Philippe

ответ

1
window.onload = function() { 
    getManager(document.getElementById('team_name').value); 
} 

function getManager(team) { 
    require(["dojo/_base/xhr"], function(xhr){ 
     xhr.post({ 
      url:"getManager.php", 
      timeout: 4000, 
      content: { team:team }, 
      load: function(manager){ 
       document.getElementById("#manager_name").value = manager; 
      } 
     }); 
    }); 
} 
+0

Возможно, я делаю это неправильно, но вышеприведенный код, похоже, не делает его по назначению:/ –

+0

следующий фрагмент кода работает для этого поля выбора, я думаю, что мой код должен следовать стандарту такого типа? '\t ' –

+0

Большая часть этого кода является просто JS и работает повсюду, но я немного не уверен, когда дело доходит до функции ajax, я уже делал что-то вроде выше и работал, но я редко использую Dojo , Проверьте DOCS на наличие дополнительных возможностей для создания ajax -> http://dojotoolkit.org/reference-guide/1.7/quickstart/ajax.html – adeneo

0

Если вы используете додзё 1.7 и выше нет необходимости использовать window.onload() или даже dojo.addOnLoad() - я думаю, что это то, что вы ищете

require(['dojo/dom', 'dojo/domReady!', function(dom) { 
    getManager(dom.byId('team_name').value); 
}); 


function getManager(team) { 
    require(['dojo/request/xhr', 'dojo/dom'], function(xhr, dom) { 
    xhr.post('getManager.php', { 
     method: 'POST', 
     data: {team: team} 
    }).then(function(manager) { 
     dom.byId('manager_name').value = manager; 
    }, function(error) { 
     console.error('couldn\'t fetch manger!'); 
    }); 
    }); 
} 

domReady! - является загруженным плагином AMD, который будет ждать, пока DOM завершит загрузку до возвращения

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