2014-01-16 5 views
0

예상대로 작동하는 자동 완성/기본 양식이 있습니다 (아마도). 3 문자를 입력하고 일치 항목을 찾습니다. 일치 항목을 선택할 때 키를 사용하거나 Enter 키를 눌러 확인하거나 마우스를 클릭하면 Enter 키를 눌러 양식을 제출합니다. 이 느낌이 ... 부 자연스러운 :-)ATK4 선택 또는 입력시 자동 완성 양식 입력

그래서 내가 선택한 후 나를 위해 양식을 제출하는 자동 완성/기본 양식 필드를 얻으려고 노력하고있어.

$form->getElement('fieldname')->js('select', $form->js()->univ()->alert('Select!')); 

이 불을 텍스트 양식 필드에서 선택한, 내가 찾던 꽤 무엇을 : 내 첫 번째 (잘못) 테스트 시도

이의 라인을 따라 뭔가를하고있었습니다.

필자는 autocomplete_univ.js를 보았고 $ (other_field) .closest ('form')을 추가했다. 그러나 나는 jQuery/JS를 전혀 잘 모릅니다. 그래서 누군가 나를 도와 줄 수 있기를 바랍니다.

자동 완성 선택을 트리거 (제출)하는 방법에 대한 아이디어가 있으십니까?

this.jquery.autocomplete($.extend({ 
     source: data, 
     focus: function(event, ui) { 
      // Imants: fix for item selecting with mouse click 
      var e=event; 
      while(e.originalEvent!==undefined) e=e.originalEvent; 
      if(e.type!='focus') q.val(ui.item[title_field]); 

      return false; 
     }, 
     select: function(event, ui) { 
      q.val(ui.item[title_field]); 
      $(other_field).val(ui.item[id_field]); 
      //Added this line below 
      $(other_field).closest('form').submit(); 

      return false; 
     }, 
     change: function(event, ui) { 
      var data=$.data(this);//Get plugin data for 'this' 
      if(data.uiAutocomplete.selectedItem==undefined) { 
       if("mustMatch" in options) q.val(''); 
       $(other_field).val(q.val()); 

       return false; 
      } 
     } 
    },options)) 
    .data("ui-autocomplete")._renderItem = function(ul, item) { 
     return $("<li></li>") 
      .data("ui-autocomplete-item", item) 
      .append("<a>" + item[title_field] + "</a>") 
      .appendTo(ul); 
    }; 
+0

좀 더 읽기 않았다 $ (other_field) .val (ui.item [id_field]를); $ (other_field) .val (ui.item [id_field] .val)로 변경되었습니다. 내가 원하는 것처럼 이 제출을 시작합니다. 지금은 현장에서 필요한 가치가 더 이상 통과되지 않습니다. 누구나 내게 설명하고 수정 제안을 제안 할 수 있습니까? –

+0

$ (other_field) .val (ui.item [id_field])로 다시 변경되었습니다. 그리고 나는 왜 그런지 모르지만 - 이제는 예상대로 작동하는 것처럼 보입니다. 필요에 따라 이드가 전달됩니다. 누군가 위의 코드가 광고로 작동 함을 확인할 수 있습니까? 양식을 제출하고 마우스 선택 및 키 누르기로 ID를 전달합니까? 감사합니다. –

답변

0

ATK의 JS 라이브러리가 올바르지 않다고 생각합니다.

아마 작동해야하는 것은 other_field onChange 이벤트에 연결하는 것입니다. 이 같은 뭔가 :

$(other_field).change(
    function(){$(other_field).closest('form').submit();} 
);