2012-02-01 8 views
7

campi nascosti:.document.getElementById ('id') avendo valore in ASP.net JavaScript funzione

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

funzione 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 = ""; 
} 

L' errori di funzione javascript con "Object Expected" su var brk = ... e non riesco a capire dove sta andando male. Tirando fuori i capelli! :(

+0

È possibile che venga richiamato 'doGetWave' prima che i campi nascosti vengano renderizzati? – Pat

risposta

16

Quando si posiziona runat="server" in un tag HTML standard, ASP.Net maneggia l'ID per assicurarsi che sia univoco (proprio come fa con i propri controlli). È necessario accedere all'elemento utilizzando l'ID che ASP. . net assegnato Prova questo:

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

Informazioni aggiuntive

Se si sta utilizzando il framework 4.0, è possibile modificare questo comportamento al elemento, pagina o livello di applicazione Scopri this link per una. piccolo tutorial decente Se si sceglie di impostare il ClientIdMode a Static, è possibile accedere ai propri elementi tramite gli ID che sono stati originariamente assegnati (non verranno modificati).

+2

Questo ha fatto il trucco. Su "visualizza sorgente" ho trovato la merda casuale inserita da ASP. Soia fastidiosa. –

+1

Oppure, se stai usando .net 4, imposta il clientidmode su static. – ScottE

+1

risposta perfetta !!. Grazie. – Hitsa00