我正在制作一个json请求,如果请求的结果为真,我希望显示一个特定的div。
目前我收到的错误如下,你能帮我解决一下这个问题吗?
Microsoft JScript运行时错误:对象不支持属性或 方法'val'
p.s:我已经通过控制台检查了json正确返回“true”并且问题是成功的。
我附上了以下代码。
脚本:
<script type='text/javascript'>
$(document).ready(function () {
$('#ComputerLocation').hide();
$('#typeddl').on('change', function () {
$.ajax({
type: 'POST',
url: '@Url.Action("GetItemTypeForm")',
data: { itemTypeId: $('#typeddl').val() },
success: function (result) {
if (result != null && result.val(this.Value) == 'true') {
$('#ComputerLocation').show();
};
}
});
});
});
</script>
控制器:
[HttpPost]
public JsonResult GetItemTypeForm(int itemTypeId)
{
//pseudo code
var data = from s in db.ItemTypes
where s.ItemTypeId == itemTypeId
select new { Value = s.IsComputer };
return Json(data);
}
答案 0 :(得分:0)
如果我理解正确的话:
当您尝试在此行中获取val()时
(ifresult!= null&amp;&amp; result.val(this.Value)=='true'){
你假设结果有一个叫做val的函数,但是在json中你不能发送函数而你正在尝试发送这个函数this.Value
而且这根本没有任何意义。
我假设你想:
if(result!= null&amp;&amp; result.val =='true'){
并且在这一行中您也使用this
我认为这也可能是错误的。在使用ajax回调之前,应将其设置为另一个字段。
<script type='text/javascript'>
$(document).ready(function () {
$('#ComputerLocation').hide();
$('#typeddl').on('change', function () {
var that = this; // now this is an jquery object
$.ajax({
type: 'POST',
url: '@Url.Action("GetItemTypeForm")',
data: { itemTypeId: $('#typeddl').val() },
success: function (result) {
if (result != null && result.val == 'true') { // maybe you want to check that.val()
$('#ComputerLocation').show();
};
}
});
});
});