我有一个下拉列表,其中包含一个访问列表,其显示如下:
5/3/2012 At School
此下拉列表下方是日期字段和访问类型下拉列表。我想根据第一个下拉列表填充这些字段。所以对于这个例子,日期字段将被填充,5/3/2012
访问类型将是:At School
我正在使用 javascript 来使用它,但我有一个错误窗口显示 [object Object]。
这是我的代码:
JavaScript:
<script type="text/javascript">
var durationRowVisibilityCheck = function () {
var disableDuration = $.trim($("select#UnableToVisitReasonId option:selected").text()).length != 0;
var $durationRow = $("#visitDuration");
if (disableDuration) $durationRow.hide(); else $durationRow.show();
};
$(function () {
durationRowVisibilityCheck();
$("select#UnableToVisitReasonId").change(function () {
durationRowVisibilityCheck();
});
$("#VisitEntryId").change(function(e) {
var visitEntryId = $("#VisitEntryId.option:selected").val();
if (visitEntryId != '<%=Guid.Empty %>')
GetVisitDetails(visitEntryId);
});
});
function GetVisitDetails(visitEntryId)
{
$.ajax({
url: '<%=Url.Action("GetVisitDetails", "VisitActivity") %>' + '?visitEntryId=' + visitEntryId,
contenttype: "application/json; charset=utf-8",
success: function(json) {
populate(json);
},
error: function (xhr, status, error) {
alert(xhr);
},
type: "POST",
datatype: "json"
});
}
function populate(data) {
$("#ActivityDate").val(data.VisitDate);
$("#VisitTypeId").val(data.VisitTypeId);
}
获取详细信息方法:
public JsonResult GetVisitDetails(Guid visitEntryId)
{
var model = new VisitDetailModel();
VisitEntry visitEntry = _visitEntryService.Get(visitEntryId);
if(visitEntry == null)
{
model.Message = string.Format(Message.NotFoundMessage, Resources.Entities.Visit.EntityName);
return Json(model);
}
model.VisitEntryId = visitEntryId;
model.VisitTypeId = visitEntry.VisitTypeId;
if (visitEntry.VisitType != null)
model.VisitType = visitEntry.VisitType.Description;
model.VisitDate = visitEntry.VisitDate.ToShortDateString();
return Json(model);
}
#region Nested Type:VisitDetailModel
public class VisitDetailModel
{
public Guid VisitEntryId { get; set; }
public short VisitTypeId { get; set; }
public string VisitType { get; set; }
public string VisitDate { get; set; }
public string Message { get; set; }
}