Hej, Enklast är att bara sätta en flagga vid onchange: Ah smart! Tackar!! <b>Men hur funkar det om man ändrar och sen ändra tillbaks till samma innan man sparar?</b> Tack igen, men det blir inte riktigt bra. <b>>Detta behöver jag ta hand om, det är bara om värdet verkligen har ändrats som alerten skall visas.</b> Jo, det är jag med på. Jag löste det hyfsat. Använde onchange på alla som sätter changed till True, så även om man ändrar tillbaks får man en alert. Det får bli så.Loopa dropdowns och kolla om någon ändrats, ganska akut!!
Jag jobbar nu i ASP.NET och behöver göra följande.
På en Spara-knapp ska jag lägga på ett javascript onClick event.
Här i vill jag kontrollera om värdet på en, eller flera, dropdownmenyer har ändrats.
Jag vet inte hur många det är och vet inte heller vad dom heter. Däremot vet jag inom vilken div-tag dom ligger.
Det spelar ingen roll vilken av dom som ändrats. Det viktiga är att jag fångar ifall någon av dom har ändrat värde.
Har man ändrat något skall en confirm dialog komma upp.
Jag antar att man först, på något sätt, loopar dom och sparar undan dess originalvärde. Sen kanske lägger en "onchange" på varje dropdown som uppdaterar en variabel som jag kan jämföra?
Fast jag har ingen aning om hur man skriver sånt i javascript.
Någon som kan hjälpa mig, please?? Jag är lite sent ute, så det brinner lite i knutarna...
Bugar på förhand!!
/JockeSv: Loopa dropdowns och kolla om någon ändrats, ganska akut!!
<code html>
<script type="text/javascript">
var changed = false;
</script>
<form>
<select onchange="changed=true">
...
</select>
<input type="submit" name="save" value="Spara" onclick="if (changed) return confirm('Spara ändringar?')">Sv:Loopa dropdowns och kolla om någon ändrats, ganska akut!!
Men hur funkar det om man ändrar och sen ändra tillbaks till samma innan man sparar?
Sen kom jag o tänka på en sak till. På sidan finns andra kontroller som gör postback.
Så om jag först ändra mitt värde i en dropdown och sen görs postback någonstans, funkar väl inte detta.
Vet inte riktigt hur man löser det..?
/JockeSv: Loopa dropdowns och kolla om någon ändrats, ganska akut!!
Då räknas det fortfarande som att man har ändrat.
<b>På sidan finns andra kontroller som gör postback.
Så om jag först ändra mitt värde i en dropdown och sen görs postback någonstans, funkar väl inte detta.</b>
Det stämmer. Men du kan lägga testet i formtaggen i stället:
<form onsubmit="if (changed) return confirm('...')">Sv:Loopa dropdowns och kolla om någon ändrats, ganska akut!!
<b>Då räknas det fortfarande som att man har ändrat.</b>
Detta behöver jag ta hand om, det är bara om värdet verkligen har ändrats som alerten skall visas.
<b>Men du kan lägga testet i formtaggen i stället:
<form onsubmit="if (changed) return confirm('...')"></b>
Det blir samma sak. Då tycker scriptet att inte jag har ändrat eftersom postback gjorts.(ganska logiskt iof)
Jag kanske måste blanda lite script med code behind-kod?
Det står still i mitt lilla huvud.
Så om någon har några bra tips så....???
/JockeSv: Loopa dropdowns och kolla om någon ändrats, ganska akut!!
Då måste du spara alla startvärden, och jämföra dem med slutvärdena istället.Sv:Loopa dropdowns och kolla om någon ändrats, ganska akut!!
Frågan är hur man gör sånt i javascript?
Sen är frågan, om jag lyckats spara startvärdena med javascript och sedan ändrar jag ett värde, sen gör jag något annat på sidan som gör att sidan postas. Då försvinner väl mina sparade startvärden?
Eller kan man spara orginalvärden i code behind som går att komma i mitt javascript?
/JockeSv: Loopa dropdowns och kolla om någon ändrats, ganska akut!!
Sen sparade jag en true/false flagga i en hidden textbox, istället för i en javascript variabel. På så sätt behåller den sitt värde efter postbacks.
/Jocke