2011-08-18 2 views
4

У меня есть простой текстовый ящик с автозаполнением JQuery внутри div, на котором я использую SimpleModal для создания модального диалога. В первый раз, когда модальный диалог называется, автозаполнение работает нормально. После закрытия диалога он полностью перестает работать. Есть ли у кого-нибудь идеи, из-за чего это может быть связано?JQuery Autocomplete inside SimpleModal

код, как показано ниже:

Диалог HTML:

<div id="simplemodal"> 
<div class="content"> 
    <span class="label">国名</span> 
    @Html.TextBox("NewRegion", "") 
</div> 
<div class="commands"> 
    <a>追加する</a> 
    <a class="simplemodal-close">キャンセル</a> 
</div> 

и сценарий для диалога

/*Show add region dialogue*/ 
function AddNewRegion(ProjectID) { 
    $('#simplemodal').modal({ 
     closeHTML: 'simplemodal-close', 
     closeClass: 'simplemodal-close' 
    }); 
} 

автозаполнения сценария

$(function() { 
$('#NewRegion').autocomplete({ source: '/Regions/FindRegions' }); 
}); 

Я знаю, что это было задано раньше, но похоже, что вопрос не получил ответа.

+0

попробуйте воссоздать автозаполнение перед показом модального диалога. – TheVillageIdiot

+0

Вы имеете в виду как в создании функции CreateAutoComplete() {$ ('# NewRegion'). Autocomplete ({source etc ...}); } и выполнение этого, когда я называю модальным? Или вы имеете в виду что-то еще? –

+0

Я думаю, что при закрытии диалога это может привести к разрушению автозаполнения. Поэтому перед показом или сразу после показа диалогового окна вы можете вызвать код для повторного создания автозаполнения. – TheVillageIdiot

ответ

0

Объедините свои два образца JS кода в:

/*Show add region dialogue*/ 
function AddNewRegion(ProjectID) { 
    $('#simplemodal').modal({ 
     closeHTML: 'simplemodal-close', 
     closeClass: 'simplemodal-close', 
     onShow: function (dialog) { 
      $('#NewRegion', dialog.data[0]).autocomplete({ source: '/Regions/FindRegions' }); 
     } 
    }); 
} 

Если это не работает, дайте мне знать.

+0

Привет, Эрик, спасибо за ваш ответ и жаль, что так долго. Я, наконец, должен попробовать это, но список автозаполнения пользовательского интерфейса JQuery по-прежнему показывает только при первом открытии диалога. Есть ли что-нибудь еще, что вы можете думать о том, что я мог бы попытаться сделать эту работу? –

0

Код ниже может помочь вам

$(document).ready(function() { 
    $("#NewRegion").autocomplete({ 
     source: function(request,response) { 
      $.ajax({ 
       url: "/Regions/FindRegions", 
       type: "POST", 
       dataType: "json", 
       data: { term: request.term }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { value: item.Country }; 
        })) 

       } 
      }) 
     }, 
     messages: { 
      noResults: "", results: "" 
     } 
    }); 
}) 
0

Я столкнулся с этой проблемой, а также. Это можно решить, установив для параметра persist значение true при открытии модального диалога.

Не нужно переустанавливать обработчик автозаполнения при каждом открытии модального диалога.