2012-07-16 82 views
-1

HTML服務器中的JavaScript不起作用?

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#musteri_sno").change(function() { 
      var strSayacID = ""; 
      strSayacID = $(this)[0].value; // get the selected state id 

      var url = "/SayacOkumalari/MusteriSayaclariniGetir/" + strSayacID; 
      // call controller's action 
      $.getJSON(url, null, function (data) { 
       // do something once the data is retrieved 
       $("#sayac_no").empty(); 
       $.each(data, function (index, optionData) { 
        $("#sayac_no").append("<option value='" 
        + optionData.sno 
        + "'>" + optionData.sayac_seri_no 
        + "</option>"); 
       }); 
      }); 
     }) 
    .change(); // making sure the event runs on initialization for default value 
    }); 
    </script> 
    @using (Ajax.BeginForm("SayacSecimiPartial", "SayacOkumalari", new AjaxOptions { UpdateTargetId = "div_grafik" }, new { id="sayac_secimi_form"})) 
    { 
    <table> 
     <tr> 
      <td> 
       @Html.DropDownList("musteri_sno", (SelectList)ViewBag.musteri_id, "--Müşteri Seçiniz--", new { id = "musteri_sno" }) 
      </td> 
      <td> 
       @Html.DropDownList("sayac_no", Enumerable.Empty<SelectListItem>(), "-- Sayaç Seçiniz --", new { id = "sayac_no" }) 
      </td> 
      <td> 
       <input type="submit" value="Uygula" /> 
      </td> 
     </tr> 
    </table> 
} 

這個腳本在本地主機,但它並沒有在服務器上運行。我的項目中有很多腳本,他們都在工作。只有這個腳本不起作用。我找不到,爲什麼?

謝謝。

+2

您是否在控制檯中查看JSON請求是否已成功完成?我懷疑這將是一個URL問題 – ipr101 2012-07-16 12:27:57

+0

阿里 - 這是'殘酷'取消我的答案作爲'答案':)。認真對待,我認爲你選擇的那個對任何尋求這種問題的可靠答案的人都是不利的,因爲它可能適用於你的實例,但肯定不是除此以外的防彈解決方案。不會希望我的選擇恢復爲「選擇」,但請注意,@ Url.Action()方法將始終解決與您的託管環境相關的url,而您當前的「選擇」非常脆弱。 – 2012-07-17 12:49:06

回答

1
var url = "/SayacOkumalari/MusteriSayaclariniGetir/" + strSayacID; 

而不是嘗試使用以下,因爲我對您的解決方案中的文件夾結構有懷疑。

var url = "../SayacOkumalari/MusteriSayaclariniGetir/" + strSayacID; 

讓我知道如果它沒有幫助,我會嘗試另一件事。

2

我懷疑問題行是這一個位置:

var url = "/SayacOkumalari/MusteriSayaclariniGetir/" + strSayacID; 

試試這個更改爲:

var url = '@Url.Action("MusteriSayaclariniGetir", "SayacOkumalari", new {Id = strSayacID })'; 

當你不顯示控制器動作,我「假設」那MusteriSayaclariniGetir有一個參數Id。如果不是,則只需更改new {Id = strSayacID })部分以匹配所需的參數名稱。