javascript - 为什么是 "Microsoft JScript runtime error: Object expected"?

标签 javascript jquery asp.net-mvc-3

我使用 jquery 大约 1 天了,目前正在做噩梦。我已经花了半天时间试图摆脱这个错误。 在“谷歌搜索”错误(抱歉,Bing!)后我做了一些阅读,发现大多数这些错误是由于 jquery 文件未正确加载造成的。好吧……这开始为我指明了正确的方向,但我仍然无法弄清楚为什么它的路径不正确。我的意思是,我按照人们说的做了——我将 .js 文件拖到我的设计器中,它会打印出正确的路径,但仍然显示错误。

这是我在编辑器模板中的确切代码(有错误):

@model bool
@{
    string status = "Active";
    string buttonValue = "Deactivate";
    string hiddenValue = "true";
    if (!ViewData.Model)
    {
       status = "Inactive";
       buttonValue = "Activate";
       hiddenValue = "false";
    }
}

<div style="width:100px; float:left;"> 
<img id = "AD_Img" src = "/Content/themes/base/images/icon_@(status).png" alt = @(status) />
<label for = "AD_Img" id = "AD_Label" >@(status)</label>
</div>
<div style="width:100px; float:left;"> 
<input type="button" id = "AD_Button" value = @(buttonValue) style = "width:100px" onclick = "ChangeStatus()" />
<input id = "AcntStatus" type = "hidden" name = "AcntStatus" value = @(hiddenValue) />
</div>

在同一个 cshtml 文件中,脚本是这样的:

<script type="text/javascript" src="/Scripts/jquery-1.5.1.min.js">

function ChangeStatus()             
{
    var ButtonVal = $("#AD_Button").val();
    alert(ButtonVal);

        if (ButtonVal == "Deactivate")
        {
            var stat = "Inactive";
            var buttonVal = "Activate";
            var HiddenValue = "false";
        }

        else if (ButtonVal == "Activate")
        {
            stat = "Active";
            buttonVal = "Deactivate";
            HiddenValue = "true";
        }
            $("#AD_Img").attr({src: "/Content/themes/base/images/icon_"+stat+".png", alt: stat});
            $("#AD_Label").html(stat);
            $("#AD_Button").val(buttonVal);
            $("#AcntStatus").val(HiddenValue);    
}
 </script>

调试器在以下行的输入元素的 ChangeStatus 函数处停止:

    <input type="button" id = "AD_Button" value = @(buttonValue) style = "width:100px" onclick = "ChangeStatus()" />

我尝试在我的函数代码中使用它来调试它:

    function ChangeStatus()             
    {
       var ButtonVal = document.getElementById("AD_Button").value;
       alert(ButtonVal);
    }

它工作正常,它返回了我正在寻找的确切字符串,没有那个错误,但为什么呢?我的代码有什么问题? 请帮我解决这个问题。

最佳答案

这个:

$("#AD_Img").attr(src: "../../../Content/themes/base/images/icon_"+stat+".png", alt: stat);

强制语法错误。它必须是:

$("#AD_Img").attr({src: "../../../Content/themes/base/images/icon_"+stat+".png", alt: stat});

编辑:

同时看看你的 <script> ,你不能混合使用外部 JS 和内部 JS。

这个:

<script type="text/javascript" src="../../../Scripts/jquery-1.5.1.min.js">
//your code
</script>

必须拆分成

<script type="text/javascript" src="../../../Scripts/jquery-1.5.1.min.js"></script>

<script type="text/javascript">
//your code
</script>

关于javascript - 为什么是 "Microsoft JScript runtime error: Object expected"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9028867/

相关文章:

javascript - vue中将多个元素包裹成一个无感元素标签

javascript - 相关图像损坏,需要 javascript 修复

javascript - 使用 jquery 部分工作的克隆验证

javascript - 从成对列表中获取 JSON 值作为数组(用于自动完成功能)

html - 导航栏覆盖 Logo

c# - 如何重定向到 asp.net mvc 3 中的错误页面?

javascript - 将元素添加到 DOM 树后,元素的尺寸是否可立即读取?

javascript - 从 JSON 数组 Javascript 创建菜单

asp.net-mvc - 从客户端检测到危险的 Request.Form 值 - 为什么?

javascript - $.ajax 不是一个函数?