2011-08-18 12 views
4

SimpleModalを使用してモーダルダイアログを作成するdiv内にJQueryオートコンプリートを含むシンプルなテキストボックスがあります。 初めてモーダルダイアログが呼び出されると、オートコンプリートがうまく動作します。ダイアログが閉じられた後、ダイアログは完全に機能しなくなります。誰かがこれが原因で何が起こるか考えていますか?SimpleModal内のJQueryオートコンプリート

コードは以下の通りである:

対話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

にあなたの2つの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 UIのオートコンプリートリストには、ダイアログが初めて開かれたときしか表示されません。私はこの仕事をしようとすることができると思うことが他に何かありますか? –

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に設定することで解決できます。

モーダルダイアログを開くたびにオートコンプリートハンドラを再インストールする必要はありません。

関連する問題