Получить свойства элемента управления с помощью JavaScript в Firefox - PullRequest
0 голосов
/ 30 марта 2009

Я пытаюсь получить доступ к свойствам элемента управления, и хотя он отлично работает в IE6, в FF3 он не работает. Я делаю:

alert(document.getElementById(gridViewCtlId).style.display);
alert(document.getElementById(gridViewCtlId).style);

И первый показывает пустое всплывающее окно, а второй показывает 'undefined'.

Я делаю

alert(document.getElementById(gridViewCtlId).id);

и я получаю правильный ID коробки вместе с:

alert(document.getElementById(gridViewCtlId));

и я получаю это в таблице HTML.

Это прекрасно работает в IE, но не в FF. Что мне нужно сделать, чтобы это функционировало?

Редактировать: gridViewCtlId определяется как:

var gridViewCtlId = '<%=GridView.ClientID%>';

Вот полный код:

var itemVisible= '<%=ItemVisible.ClientID%>';

function onGridViewRowSelected(rowIdx)
{
    alert(document.getElementById(gridViewCtlId).style.display);
    alert(document.getElementById(gridViewCtlId).style);
    if (document.getElementById(gridViewCtlId).disabled == false)
    {
        alert("hi1");
        var selRowCCA = getSelectedRow(rowIdx);
        if (curSelRow != null)
        {   
            alert("hi2");
            var previousRow = getSelectedRow(previousRowIndx);

            var CountIdx = previousRowIndx % 2;
            if (document.getElementById(itemVisible) == null)
            {
                if (CountIdx == 0)
                {
                    alert("hi");
                    previousRow.style.backgroundColor = 'Silver';
                }
                else
                {
                    previousRow.style.backgroundColor = 'White';
                }
            }
        }

        if (null != selRow)
        {
            alert("new");
            previousRowIndx = rowIdx;
            curSelRow = selRow;
            selRow.style.backgroundColor = 'Red';
        }
    }
}

Это в значительной степени onClick, где мне нужно вызвать эту функцию, чтобы вернуть ее к исходному цвету (используя чередующиеся цветовые ряды). IE, это работает отлично. Если я сделаю первое предупреждение

alert(document.getElementById(gridViewCtlId).disabled);

Я бы получил либо истину, либо ложь. Это происходит потому, что кто-то собирается ввести что-то в текстовое поле, и первый gridview будет заполняться в зависимости от того, что в этом textbox. Затем, когда кто-то выберет что-то в первом виде сетки, этот gridview станет отключенным, а затем заполнится вторым. У меня проблема с проверкой отключенной части gridview.

1 Ответ

0 голосов
/ 30 марта 2009
<div id="test">
</div>
<script type="text/javascript">
var gridViewCtlIdCCA = 'test';
alert(document.getElementById(gridViewCtlIdCCA).style);
</script>

Оповещения [object CSSStyleDefintion] в Firefox 2 и 3.

Если .style там, где не определено, .style.display выдаст ошибку, не предупреждая пустое диалоговое окно (если вы не захватываете window.onerror).

Можете ли вы создать SSCCE , который демонстрирует проблему. Больше информации о SSCCE доступно здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...