2017-12-27 228 views
1

我試圖在Bootstrap模式窗口中實現自動完成jQuery UI功能,但它不起作用。MVC模式窗口中的jQuery UI自動完成

screenshot module console debug

拿不回來的局部視圖的步驟,也已經實現了jQuery的CSS樣式,真相對我的作品的全部景色,但爲什麼叫模態窗口不會是什麼時候?對我有幫助嗎?

,我所說的模態窗口的我的腳本:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("body").on("click", "a.dialog-window", null, function (e) { 
      e.preventDefault(); 
      var $link = $(this); 
      var title = $link.text(); 
      $('#AgregarProducto.modal-title').html(title); 
      var url = $(this).attr('href'); 
      if (url.indexOf('#') == 0) { 
       $('#AgregarProducto').modal('show'); 
      } 
      else { 
       $.get(url, function (data) { 
        $('#AgregarProducto .te').html(data); 
        $('#AgregarProducto').modal(); 
       }).success(function() { $('input:text:visible:first').focus(); });  
      } 
     }); 
    }); 
</script> 

我Modal窗口:

<div class="form-group">   
     <div class="col-md-10"> 
      <input type="text" name="producto" id="producto" />    
     </div> 
    </div> 

    @section Scripts {  

     @Scripts.Render("~/bundles/jqueryval")  
    <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script> 
    <script src="~/Scripts/jquery-ui-1.12.1.js"></script> 

    <script> 
      $(function() { 
       $("#producto").autocomplete({ 
        source: "/Salidas/BuscarProducto" 
       }); 
      }); 
    </script>  
    } 

我的控制器:

public JsonResult BuscarProducto(string term) 
    { 
     using (DataContext db = new DataContext()) 
     { 
      var resultado = db.Productos.Where(x => x.v_Nombre.Contains(term)).Select(y => y.v_Nombre).Take(5).ToList(); 

      return Json(resultado, JsonRequestBehavior.AllowGet); 
     } 
    } 
+0

您可以嘗試在模式顯示後運行'$(「#producto」)。autocomplete'嗎?在完全顯示模式之前,jQuery可能無法執行正確的DOM操作。你需要處理'shown.bs.modal'事件。 – kettch

+0

你會建議我在調用模態的腳本中進行更改嗎?或者在模態內對腳本進行更改? @kettch –

+0

我會從頂部的$(document).ready函數中完成它,就在你調用'show'之前就好了。 – kettch

回答

0

嘗試添加的事件處理程序shown.bs.modal在展示模態本身之前。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("body").on("click", "a.dialog-window", null, function (e) { 
      e.preventDefault(); 
      var $link = $(this); 
      var title = $link.text(); 
      $('#AgregarProducto.modal-title').html(title); 
      var url = $(this).attr('href'); 
      if (url.indexOf('#') == 0) { 
       $('#AgregarProducto').on('shown.bs.modal', function() { 
        $("#producto").autocomplete({ 
         source: "/Salidas/BuscarProducto" 
        }); 
       } 
       $('#AgregarProducto').modal('show'); 
      } 
      else { 
       $.get(url, function (data) { 
        $('#AgregarProducto .te').html(data); 
        $('#AgregarProducto').modal(); 
       }).success(function() { $('input:text:visible:first').focus(); });  
      } 
     }); 
    }); 
</script> 
+0

我明白你的解決方案,但它不適用於我....任何幫助對我? –

+0

什麼具體是什麼是預期行爲,什麼是實際行爲?另外,你知道'shown.bs.modal'事件代碼是否正在運行嗎?請將你的更新代碼添加到問題的結尾,以便我們可以在上下文中查看 – kettch

+0

具體而言,自動完成不起作用,預期的行爲是在我的模式窗口中...提示產品的名稱和實際行爲......它不會提示任何東西 我附加了一個圖像以獲取更多詳細信息(編輯問題)@kettch –