2017-04-11 66 views
2

我創建級聯下拉列表,但我得到一個錯誤:jQuery的GetCity沒有定義

function GetCity(_warehousesId) { 
    var procemessage = "<option value='0'> Please wait...</option>"; 
    $("#ddlcity").html(procemessage).show(); 
    var url = "/Carriage/GetCityByStaeId"; 

    $.ajax({ 
     url: url, 
     data: { warehousesid: _warehousesId }, 
     cache: false, 
     type: "POST", 
     success: function (data) { 
      var markup = "<option value='0'>Select City</option>"; 
      for (var x = 0; x < data.length; x++) { 
       markup += "<option value=" + data[x].Value + ">" + data[x].Text + "</option>"; 
      } 
      $("#ddlcity").html(markup).show(); 
     }, 
     error: function (reponse) { 
      alert("error : " + reponse); 
     } 
    }); 

}; 

@using (Html.BeginForm()) 
{ 
    @Html.DropDownListFor(m => m.StateModel, new SelectList(Model.StateModel, "WarehousesID", "Name"), new { @id = "ddlstate", @style = "width:200px;", @onchange = "javascript:GetCity(this.value);" }) 
<br /> 
<br /> 
<select id="ddlcity" name="ddlcity" style="width: 200px"></select> 

<br /><br /> 
} 

而且所有的時間我得到一個錯誤:「GetCity沒有定義」。我究竟做錯了什麼?

+0

爲什麼這個聲明兩次'VAR URL = 「/運輸/ GetCityByStaeId」; var procemessage =「」;'? – Pugazh

+0

從自動執行功能中刪除名稱,否則它將不起作用。 '(function($){/ * .. * /})(jQuery);'。 '''''''''''''''''''''''''''''你也傳遞'jQuery'庫作爲'_warehouseId' – Justinas

+0

使用單獨的'

1

script elements可以有一個src屬性內容,但不能同時使用。如果他們同時擁有這兩個內容,則內容將被忽略(內容被視爲「腳本文檔」,而不是代碼)。

使用其他腳本塊爲您的jQuery腳本並定義功能GetCity正確

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> 
</script> 
<script> 
    var url = "/Carriage/GetCityByStaeId"; 
    var procemessage = "<option value='0'> Please wait...</option>"; 
    function GetCity(_warehousesId) { 
     //Your code 
    } 
</script> 
+0

我很抱歉是我的錯。偶然我在那裏添加了它們,反正它對我不起作用 –

+0

我這樣做,但我得到了:「$不是函數」 –

+0

@MikeEvans,你在引用'jquery-ui'庫。您需要添加對jQuery庫的引用,按照我在答案中提供的方式使用 – Satpal