Cześć,

Jak przesłać zmienną ID do pola typu hidden, korzystając ze skryptu autocomplete http://bassistance.de/jquery-plugins/jquer...n-autocomplete/

Kroki
1. Wybieram z listy stan
2. Wpisuje w 2 pole "Peter"
3. Klikam "sent"


Dane
var emails = [{"id":1,"name":"Peter Pan (peter@pan.de)"},{"id":2,"name":"Molly (molly@yahoo.com)"},{"id":3,"name":"Forneria Marconi (live@japan.jp)"},{"id":4,"name":"Master Sync (205bw@samsung.com)"}];

W tym nie moge zmienic na row.id, bo wtedy użytkownik widział by taka wartość
formatResult: function(row) {
return row.name;
}

Formularz
  1.  
  2. <form class="test" id="myform" method="post" action="">
  3. <label class="state" for="state">State</label>
  4. <select id="developer" name="developer">
  5. <OPTION VALUE="AL" >Alabama
  6. <OPTION VALUE="AK" >Alaska
  7. <OPTION VALUE="CA" Selected>California
  8. <OPTION VALUE="CO" >Colorado
  9. </select>
  10. <input type="text" name="usCityAjax" id="usCityAjax" value="" />
  11. <input type="hidden" id="id" name="id" value="" />
  12. <input type="submit" value="sent" />
  13. </form>



Kod JavaScript
  1. <script type="text/javascript">
  2.  
  3. $(document).ready(function() {
  4.  
  5. $('#developer').change(function() {
  6. $('#usCityAjax').val("");
  7. $('#usCityAjax').unautocomplete();
  8. onSelectChange();
  9. });
  10.  
  11. function onSelectChange() {
  12. var cityFilePath = '';
  13. var stateSelected = $('#developer option:selected');
  14. cityFilePath = "js/localdata.php?q="+stateSelected.val().toLowerCase();
  15. $.getScript(cityFilePath, function() {
  16. $('#usCityAjax').autocomplete(emails, {
  17. autoFill: false,
  18. cacheLength: 1,
  19. minChars: 1,
  20. matchContains: "word",
  21. formatItem: function(row, i, max) {
  22. return row.name;
  23. },
  24. formatMatch: function(row, i, max) {
  25. return row.id + row.name;
  26. },
  27. formatResult: function(row) {
  28. return row.name;
  29. }
  30. });
  31. });
  32. };
  33.  
  34. function start() {
  35. onSelectChange();
  36. }
  37. window.onload = start;
  38. });
  39.