سؤال

واني اسعى الى القيام الإكمال التلقائي التي سيتم عرض شيء ومن ثم وضع شيء آخر في حقل مخفي على الاختيار.

مثال:

في قاعدة البيانات الخاصة بي لقد {[1, 'john'], [2, 'bob'], [3, 'john']}

وإذا كان نوع المستخدم jo والنقرات على 'john "في البداية، وليس لديهم وسيلة لمعرفة ما على الدخول الذي النقر. لذلك أنا بحاجة إلى نوع من حقل مخفي المرتبطة التعامل مع هذا.

هل هناك المساعد مسج أن يفعل هذا أو لا بد لي من خلق بلدي؟

ولقد بدأت بالفعل وانها تعمل بشكل جيد مع القيم المحلية، ولكن إذا كان لدي للحصول عليها بشكل غير متزامن لا يعمل حتى الان. أنا مستندة الألغام على هذا البرنامج المساعد من bassistance . اعتقد انني يمكن الحصول على يدي في رمز وتغيير الطريقة التي تتعامل بها الردود، ولكن من شأنه أن يوفر لي بعض الوقت إذا تم شيء بالفعل!

هل كانت مفيدة؟

المحلول

ويمكنك استخدام نتيجة معالج و تخزين القيمة المطلوبة على إدخال خفية.

نصائح أخرى

وأعرف أن هذا هو قديم ولكن هنا هو ما أقوم به من أجل أن يكون حقل مخفي بالسكان مع ID الفريد الذي لم تعرض والحاضر للمستخدم حقل الإكمال التلقائي التي تقوم على القيم العرض:

<script type="text/javascript">
var picklist = [
    { id: "1", value: "One" }, 
    { id: "2", value: "Two" }, 
    { id: "3", value: "Three" }, 
    { id: "4", value: "Four" }
    ];

$().ready(function() {
 $("#pickValue").autocomplete(picklist, {
  minChars: 0,
  max: 12,
  autoFill: true,
  mustMatch: true,
  matchContains: false,
  scrollHeight: 220,
  formatItem: function(row, i, total) {
   return row.value;
  }, 
  formatResult: function(row) {
   return row.value;
  }
 });
 $('input#pickValue').result(function(event, data, formatted) {
  $('#pickID').val( !data ? '' : data.id);
 });
});
</script>

وبعد بحث طويل وفقط الإكمال التلقائي وجدت تتصرف كما وصفته أنت هو: Facelist

وربما هذا من شأنه أن يساعد هو خدعة لعودة كاذبة بعد وقوع الحدث حدد. وهذا من شأنه إغلاق اختر القائمة المنسدلة وسوف التغييرات إلى مخفي / النص يبقى مرئيا.

 <script type="text/javascript">
      $(document).ready(function(){
        $("#user_autocomplete").autocomplete({
          source: "http://localhost:3000/admin/users/emails_autocomplete",
          minLength: 3,
          delay: 1,
          select: function( event, ui ) {
            if (ui.item) {
              console.log("Selected: " + ui.item.value + " aka " + ui.item.label);
              $("#user_autocomplete").val(ui.item.label);
              $('#search_user_id_equals').val(ui.item.value);
            } else {
              // "Nothing selected, input was " + this.value );
            }
            return false;
          }
        });
      });

   ...........

<input class="hidden" id="search_user_id_equals" name="search[user_id_equals]" type="hidden" />

<div class="input select optional">
  <label for="user_autocomplete">User email</label>
  <input id="user_autocomplete" type="text" index="" class="ui-autocomplete-input string"
         autocomplete="off" role="textbox"
         aria-autocomplete="list" aria-haspopup="true"
         value=""
         />
</div>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top