20. maj 2003 - 16:08Der er
22 kommentarer og 2 løsninger
reference til form
Jeg har en form med navnet f. Så har jeg en række radio-buttons med navnet r. hver af disse radiobuttons har attributten 'value' sat til forskellige ting. Senere i dokumentet har jeg nu et link, der kalder en JS-funktion med <A href='#' onclick="fun(f.r,'hej')">Link</A> I min JS-funktion vil jeg nu gerne bruge den værdi, der står den markerede radiobutton. Jeg har prøvet, som en indledende test: var cmd=formEle.value; alert(cmd); men nu bliver der blot udskrevet 'undefined' Hvad er der galt?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Dette er måske en meget! omstændig løsning (introduktion af to nye funktioner) ...
men jeg kan ikke få roenving's r.selectedIndex.value til at virke ....
Here goes... Jeg ved i hvert fald at det virker...
<html> <SCRIPT> function getSelectedRadio(buttonGroup) { // returns the array number of the selected radio button or -1 if no button is selected if (buttonGroup[0]) { // if the button group is an array (one button is not an array) for (var i=0; i<buttonGroup.length; i++) { if (buttonGroup[i].checked) { return i } } } else { if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero } // if we get to this point, no radio button is selected return -1; } // Ends the "getSelectedRadio" function
function getSelectedRadioValue(buttonGroup) { // returns the value of the selected radio button or "" if no button is selected var i = getSelectedRadio(buttonGroup); if (i == -1) { return ""; } else { if (buttonGroup[i]) { // Make sure the button group is an array (not just one button) return buttonGroup[i].value; } else { // The button group is just the one button, and it is checked return buttonGroup.value; } } } // Ends the "getSelectedRadioValue" function
nu har jeg lavet kodet - helt efter din måde - og den fejler hos mig (frm.r.selectedIndex == undefined)
Her er den kode, som jeg bruger....
function roenvingFun( frm, txt) { alert( frm.r.selectedIndex ); // giver "undefined" alert(txt+", "+frm.r[frm.r.selectedIndex].value); // fejer da frm.r[undefined].value ikke kan findes... }
>>bearhugx I princippet er det da en utilstrækkelig reference, sådan som jeg har læst mine lærebøger, men der er selvfølgelig ikke nogen tvivl om hvilket element, som kan matche navnet -- men window kan (næsten) altid udelades, men også document ... ?-|)
-- har du forøvrigt nogen ide om, hvilke javascript-fortolkere (læs browsere) som aldrig vil tvivle ?-) -- jeg har nemlig ikke ...
roenving >> jeg har ikke nogen ide, iht. dit sidste spm - og for at være absolut på den sikre side bør man da nok også hente den pågældende form fra forms-collectionen dvs. fun( document.forms[menuForm], 'Hej' );
Men hele springpunktet i dette spørgsmål (eller i hvert fald, forskellen i vores løsninger) lå ikke i form-referencen - men mere om der rent faktisk _er_ en selectedIndex for radioknapper... Det er der ikke - og derfor er man nødsaget til at søge samlingen af knapper igennem indtil man finder en der er checked... I dette tilfælde ser det ud til at der ikke er nogen genvej - omend jeg da hjertensgerne så det - (og også synes at det kun var hensigstmæssigt....)
-- man kan ihvertfald sige vi havde forskellig focus() *g*
-- og hvis man har større mængder af radios, som man skal gøre noget ved før en submit, skulle man nok opbygge sin egen custom-funktion (med udgangspunkt i onclick vil jeg tro !-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.