有兩個DropDownList,Master及Detail
下拉Master連動Detail一般來寫程式碼都會如下
$(function () { $("#<%= Master.ClientID%>").change(function () { var q = $("#<%= Master.ClientID%>").val(); $.ajax({ url: '/get.ashx', type: 'post', async: true, data: { q: q }, success: function (data) { $('#<%= Detail.ClientID%>').empty(); var myarray = $.parseJSON(data); $.each(myarray, function (i, item) { var option = ""; $('#<%= Detail.ClientID%>').append(option); }); } }); }); });上面程式碼看似無誤,但在PostBack後就會出現System.Web.HttpUnhandledException
因為PostBack後會產生畫面
放在$(function (){});裡面又會跑一次但程式而此時就會造成錯誤
所以必需將select change放於jquery function外
$(function () { }); $("#<%= Master.ClientID%>").change(function () { var q = $("#<%= Master.ClientID%>").val(); $.ajax({ url: '/get.ashx', type: 'post', async: true, data: { q: q }, success: function (data) { $('#<%= Detail.ClientID%>').empty(); var myarray = $.parseJSON(data); $.each(myarray, function (i, item) { var option = ""; $('#<%= Detail.ClientID%>').append(option); }); } }); });