DigginMedlem sedan juli 20026 inlägg Jag har några SELECT boxar som jag vill ändra värdena i vid onSubmit().
onSubmit="return changeSpecValue(arrItemsValue1, arrItemsValue2);"
Dock blir det nåt strul när variablerna ska sättas. I nedanståend kod har proj och spec fått korrekta värden men när jag försöker sätta dom får document.form.varname.value värdet undefined.
function changeSpecValue(ValueProj, ValueSpec)
{
if(!document.myChoices.thirdChoice.value)
{
document.myChoices.thirdChoice.value = 0;
}
if(document.myChoices.secondChoice.value != 0){
var proj = ValueProj[document.myChoices.secondChoice.value];
document.myChoices.secondChoice.value = proj;
}
if(document.myChoices.thirdChoice.value != 0){
var spec = ValueSpec[document.myChoices.thirdChoice.value];
document.myChoices.thirdChoice.value = spec;
}
//SPÅRUTSKRIFT
alert(document.myChoices.secondChoice.value + "-" + proj + ", " + document.myChoices.thirdChoice.value + "-" + spec);
return true;
}
Nån som ser problemet?
JojoxxMedlem sedan juni 20004 308 inlägg Jag tycker det ser ut som du blandar variabel/array/objekt-referesner hejvilt.
När du anropar funktionen changeSpecValue gör du det med 2 argument, i exemplet skickar du med arrItemsValue1 och arrItemsValue2. Vad är detta? Är det variabler eller arrayer från någon annan del av sidan? Det skulle även kunna vara objekt-referenser till <select>-objekt eftersom IE är lite slaphänt och tillåter det mesta, men i så fall bör du använda hela namnet på objektet (document.form.osv). variablen proj verkar du i alla fall få en sträng i eftersom du försöker sätta egenskapen ".value" till detta värde. Men här dyker en annan fråga upp. Du skriver att du vill byta värde på några select-boxar. Select-boxar är uppbyggda med ett index, där varje <option> i <select>-boxen har ett indexnummer från 0 och uppåt. För att markera ett värde i en <select>-box (ej multiple) använder du document.formnamn.selectnamn.selectedIndex=X (där X är index-numret). För att byta värde på en <option> använder du document.formnamn.selectnamn[X].value="värde" och för att byta text på <option> använer du document.formnamn.selectnamn[X].text="text" (X är fortfarande index-numret för aktuell <option>).
Sist men icke minst. Välkommen till wF :)