document.getElementById ('id'). Сбой значения в функции javascript ASP.net - PullRequest
9 голосов
/ 01 февраля 2012

Скрытые поля:

<input type="hidden" id="hidOrg1"  runat="server" value="" />
<input type="hidden" id="hidBT" runat="server" value="" />

функция javascript:

function doGetWave(obj) {
    //debugger
    var brk = document.getElementById('hidBT').value;
    //var brkId = document.getElementById('hidBI').value;
    var org = document.getElementById('hidOrg1').value;
    session = obj.options[obj.selectedIndex].value;
    sWaveText = obj.options[obj.selectedIndex].text;    
    if (brk == "") {
        window.location.href = "url.aspx?multiple=" + org + "&wave=" + sWaveText + "&strORGId=multiple";
    }
    else {
        window.location.href = "url.aspx?multiple=" + org + "&wave=" + sWaveText + "&BRKType=" + brk + "&strORGId=multiple";
    }
}

codebehind:

protected void Page_Load(object sender, EventArgs e)
{
    hidOrg1.Value = strOrgId;
    hidBT.Value = "";
}

Ошибка функции javascript в «Ожидаемый объект» вvar brk = ... и я не могу понять, где это идет не так.Выдернуть мои волосы!(

1 Ответ

19 голосов
/ 01 февраля 2012

Когда вы помещаете runat="server" в стандартный тег HTML, ASP.Net изменяет идентификатор, чтобы гарантировать его уникальность (так же, как это происходит с собственными элементами управления).Вам необходимо получить доступ к элементу с помощью идентификатора, назначенного ASP.Net.Попробуйте это:

var brk = document.getElementById('<%= hidBT.ClientID %>').value;
var org = document.getElementById('<%= hidOrg1.ClientID %>').value;

Дополнительная информация

Если вы используете платформу 4.0, вы можете изменить это поведение на уровне элемента, страницы или приложения.Проверьте эту ссылку для приличного небольшого учебника.Если вы решите установить ClientIdMode на Static, вы сможете получить доступ к своим элементам по идентификаторам, которые вы изначально присвоили (они не будут изменены).

...