Почему «Ошибка времени выполнения Microsoft JScript: ожидается объект»? - PullRequest
3 голосов
/ 27 января 2012

Мне около 1 дня, я использую jquery, и в настоящее время у меня кошмар с ним.Я уже пол дня провел, пытаясь избавиться от этой ошибки.После «поиска в Google» сообщения об ошибке (извините, 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);
    }

И он работает правильно, он возвращает ту строку, которую я ищу, безэта ошибка, но почему?Что не так с моими кодами?Пожалуйста, помогите мне разобраться в этом.

1 Ответ

3 голосов
/ 27 января 2012

Это:

$("#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});

Edit:

Также взгляните на ваш <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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...