関数を呼び出してドロップダウン リストを再作成する JavaScript があります。2 つの異なるドロップダウン リストに入力する 2 つの呼び出しがあります。どちらもローカル Dev で正常に動作します。サーバー上で動作するのは 1 つだけです。エラーが出たもの。リモートでデバッグしたところ、呼び出しが関数に到達し、関数は適切な結果を返しました。エラーが発生したのは関数を離れた後です。アプリケーションはasp.net mvc 3で、サーバーはWindowsサーバー2008 iis7です。
問題の原因を絞り込むにはどうすればよいですか。
<script type="text/javascript">
function getSects(abbr) {
$.ajax({
url: "@Url.Action("SectionSwitch", "Assets")",
data: { abbreviation: abbr },
dataType: "json",
type: "POST",
error: function () {
alert("An error occurred.");
},
success: function (data) {
// var test = JSON.parse(data);
//alert(test);
var items = "";
$.each(data, function (i, item) {
items += "<option value=\"" + item.sectionNum + "\">" + item.sectionname + "</option>";
});
$("#Asset_Section_SectionKey").html(items);
}
});
}
function getDivs(abbr) {
$.ajax({
url: "@Url.Action("DivisionSwitch", "Assets")",
data: {abbreviation: abbr},
dataType: "json",
type: "POST",
error: function() {
alert("An error occurred.");
},
success: function (data2) {
// var test = JSON.parse(data);
//alert(test);
var items = "";
$.each(data2, function(i, item) {
items += "<option value=\"" + item.DivisionKey + "\">" + item.DivisionDescription + "</option>";
});
$("#Asset_Section_Division_DivisionKey").html(items);
}
});
}
$(document).ready(function(){
$("#Asset_Section_Division_Department_DepartmentKey").change(function () {
var abbr = $("#Asset_Section_Division_Department_DepartmentKey").val();
getDivs(abbr);
});
$("#Asset_Section_Division_DivisionKey").change(function () {
var abbr = $("#Asset_Section_Division_DivisionKey").val();
getSects(abbr);
});
});
</script>
エラーをスローしているのは getDivs 関数です。関数は次のとおりです。
public ActionResult DivisionSwitch(int abbreviation)
{
var newdivision = from f in db.Divisions
where f.DepartmentKey == abbreviation
select f;
return Json(newdivision);
}
public ActionResult SectionSwitch(int abbreviation)
{
var newsection = (from t in db.Sections
where t.DivisionKey == abbreviation
select new sectionInfo { sectionNum = t.SectionKey, sectionname = t.SectionDesciption });
return Json(newsection);
}