---
title: "Varna att ingen ändring i ett fält har skett"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/134360-varna-att-ingen-ändring-i-ett-fält-har-skett"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "LesPaul"
published: "2005-09-15T19:26:21.000Z"
updated: "2005-09-16T13:36:12.000Z"
replies: 30
views: 1357
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/134360-varna-att-ingen-ändring-i-ett-fält-har-skett"
---

# Varna att ingen ändring i ett fält har skett

_Sida 1 av 2._

## #1 — LesPaul, 2005-09-15T19:26Z

Hej alla glada,
jag vil ha en valideringsfunktion som känner av om ett fält har ändrats eller ej. Har fältet inte ändrats när man trycker på submit skall man få en popup ruta med ett meddelande ex "Fältet X har inte ändrats" och 2 val "återgå" och "OK". Trycker man OK fortsätter submit. Har fältet ändrats händer inget och formuläret postas.

Någon som vet hur man löser detta?

Väldigt tacksam för snabbt svar.

Permalänk: https://www.webforum.nu/p/134360

## #2 — Peter S, 2005-09-15T19:45Z

Tjena!

```
<form name="f" onsubmit="return validate(this)">
    <input type="text" name="e" value="värde">
    <input type="submit">
</form>

<script type="text/javascript">
var val = document.forms["f"].elements["e"].value;

function validate(obj){
    if (obj.elements["e"].value == val){
        return confirm("Fältet 'e' har ej ändrats\nVill du ändå fortsätta?");
    }
    return true;
}
</script>
```

Permalänk: https://www.webforum.nu/p/1672211

## #3 — LesPaul, 2005-09-15T19:56Z

Tack men, hmm...får det inte att fungera. Det händer ingenting.

Permalänk: https://www.webforum.nu/p/1672213

## #4 — Peter S, 2005-09-15T19:58Z

Det fungerar om du klistrar in koden som den är. Hur ser *din* kod?

Permalänk: https://www.webforum.nu/p/1672214

## #5 — LesPaul, 2005-09-15T20:03Z

Denna på submit:

```
return validate(this)
```

Detta i headern:

```
<SCRIPT LANGUAGE="JavaScript">
<!-- 
var val = document.forms["_ad_kalender"].elements["pub_day"].value;

function validate(obj){
    if (obj.elements["pub_day"].value == val){
        return confirm("Fältet DAG har ej ändrats\nVill du ändå fortsätta?");
    }
    return true;
}
// -->
</SCRIPT>
```

Permalänk: https://www.webforum.nu/p/1672215

## #6 — Peter S, 2005-09-15T20:06Z

Lägger du JS-koden i \<head\>\-sektionen, får vi göra så här istället:

```
<SCRIPT LANGUAGE="JavaScript">
<!-- 
window.onload = function(){
    val = document.forms["_ad_kalender"].elements["pub_day"].value;
}

function validate(obj){
    if (obj.elements["pub_day"].value == val){
        return confirm("Fältet DAG har ej ändrats\nVill du ändå fortsätta?");
    }
    return true;
}
// -->
</SCRIPT>
```

Permalänk: https://www.webforum.nu/p/1672220

## #7 — LesPaul, 2005-09-15T20:11Z

Det fungerar inte heller...plus att då slutar andra fält att fungera som är onChange fält. Alltså hämtar värden beroende på val.

Permalänk: https://www.webforum.nu/p/1672223

## #8 — Peter S, 2005-09-15T20:13Z

Detta fungerar

```
<head>
<script type="text/javascript">
window.onload = function(){
    val = document.forms["f"].elements["e"].value;
}

function validate(obj){
    if (obj.elements["e"].value == val){
        return confirm("Fältet 'e' har ej ändrats\nVill du ändå fortsätta?");
    }
    return true;
}
</script>
</head>

<form name="f" onsubmit="return validate(this)">
    <input type="text" name="e" value="värde">
    <input type="submit">
</form>
```

Red./ Hann inte med din redigering. Jag föreslår att du knåpar ihop ett exempel som inte fungerar och förklarar hur du vill att det skall fungera.

Permalänk: https://www.webforum.nu/p/1672224

## #9 — LesPaul, 2005-09-15T20:23Z

Jag testade scriptet enligt sitt sista recept och det fungerar! 

Problemet som uppstår då är att jag har ett annat fält där man väljer ett värde i en dropplist som sedan hämtar nya värden i ett annat fält. Då körs scriptet också och popup-rutan hoppar upp.  

Den koden som gör uppdateringen ser ut så här:

```
_doClick('$Refresh', this, '_self', '#Top')
```

Permalänk: https://www.webforum.nu/p/1672229

## #10 — Peter S, 2005-09-15T20:27Z

Och hur ser JS- och formulärkoden ut? Har du en länk till sidan?

Permalänk: https://www.webforum.nu/p/1672232

## #11 — LesPaul, 2005-09-15T20:33Z

Jag kan inte ge dig sidan för den ligger i ett adminverktyg/intranet. Plattformen är Notes.  Del 2 i headern genereras av Notes.

Så här ser Headern ut:

```
<SCRIPT LANGUAGE="JavaScript">
<!-- 
var val = document.forms["_ad_kalender"].elements["pub_day"].value;

function validate(obj){
    if (obj.elements["pub_day"].value == val){
        return confirm("Fältet DAG har ej ändrats\nVill du ändå fortsätta?");
    }
    return true;
}
// -->
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">
<!-- 
document._domino_target = "_self";
function _doClick(v, o, t, h) {
  var form = document._ad_Kalender;
  if (form.onsubmit) {
     var retVal = form.onsubmit();
     if (typeof retVal == "boolean" && retVal == false)
       return false;
  }
  var target = document._domino_target;
  if (o.href != null) {
    if (o.target != null)
       target = o.target;
  } else {
    if (t != null)
      target = t;
  }
  form.target = target;
  form.__Click.value = v;
  if (h != null)
    form.action += h;
  form.submit();
  return false;
}
// -->
</SCRIPT>
</HEAD>
```

Så här ser formulärkoden ut:

```
<FORM onSubmit="return validate(this)" 
METHOD=post ACTION=/ad_Kalender?OpenForm&Seq=1" 
ENCTYPE="multipart/form-data" NAME="_ad_Kalender">
```

Permalänk: https://www.webforum.nu/p/1672239

## #12 — Peter S, 2005-09-15T20:40Z

Vad händer om du stryker följande del:

```
  if (form.onsubmit) {
     var retVal = form.onsubmit();
     if (typeof retVal == "boolean" && retVal == false)
       return false;
  }
```

?

Permalänk: https://www.webforum.nu/p/1672243

## #13 — LesPaul, 2005-09-15T20:45Z

Det är étt problem, jag kan inte det för den genereras automatiskt av Notes. 

Men det problemet som uppstår med onChange borde alltså inte uppstå? Jag tämkte just på att det är en window.onload = function() och det är väl vad som händer när man uppdaterar fältet va?

Permalänk: https://www.webforum.nu/p/1672247

## #14 — Peter S, 2005-09-15T20:54Z

När du anropar \_doClick() triggas händelsen onsubmit för formuläret, vilket gör att confirm()\-rutan visas. Hur anropas nämnd funktion?

window.onload()\-delen som jag lade till har ingenting med detta att göra. Den sparar endast undan värdet i textfältet så vi har något att jämföra med.

Permalänk: https://www.webforum.nu/p/1672251

## #15 — LesPaul, 2005-09-15T20:58Z

Ok.
Funktionen anropas på dropdown-fältet och ser ut så här:

```
<SELECT NAME="kal_stad1" onChange="_doClick('$Refresh', this, '_self', '#Top')">
```

Permalänk: https://www.webforum.nu/p/1672256

## #16 — Peter S, 2005-09-15T21:02Z

Hm, ok. Vi testar följande då:

```
<script type="text/javascript">
window.onload = function(){
    val = document.forms["f"].elements["e"].value;
}

var subm = false;

function validate(obj){
    if (!subm){
	subm = !subm;
	return true;
    }
    if (obj.elements["e"].value == val){
        return confirm("Fältet 'e' har ej ändrats\nVill du ändå fortsätta?");
    }
    return true;
}
</script>
```

Sedan i din submitknapp för formuläret:

```
<form>
    ...
    <input type="submit" onclick="subm = true">
</form>
```

Permalänk: https://www.webforum.nu/p/1672263

## #17 — LesPaul, 2005-09-15T21:16Z

Ha..ja du. Notes funkar inte som andra program riktig. Det ligger diverse funktioner på submitknappen, sätter ett fält osv så den ignorerar min onclick-rutin och skapar en egen som ser ut så här:

```
<INPUT TYPE=button VALUE="Spara" onClick="return _doClick('1737f45085714fdcc1257074004a9ce2/$Body/0.88C8', this, null)">
```

Tror nästan att lösningen måste vara i form-delen.

Permalänk: https://www.webforum.nu/p/1672269

## #18 — LesPaul, 2005-09-15T21:17Z

Kan man få den att inte trigga submit när man gör onChange så löser det sig eller?

Permalänk: https://www.webforum.nu/p/1672271

## #19 — Peter S, 2005-09-15T21:23Z

Så du kan inte få den att se ut enligt

```
<INPUT TYPE=button VALUE="Spara" onClick="subm=true; return _doClick('1737f45085714fdcc1257074004a9ce2/$Body/0.88C8', this, null)">
```

> **LesPaul skrev:**
>
> Kan man få den att inte trigga submit när man gör onChange så löser det sig eller?

onchange har du ju för \<select\>. Eller menar du någonting annat?

Permalänk: https://www.webforum.nu/p/1672273

## #20 — LesPaul, 2005-09-15T21:27Z

Ja, ursäkta mig. Jag menar denna \_doClick('$Refresh', this, '\_self', '#Top')

Permalänk: https://www.webforum.nu/p/1672275

---

Tråden på webben: https://www.webforum.nu/amne/javascript/134360-varna-att-ingen-ändring-i-ett-fält-har-skett  
Nästa sida: https://www.webforum.nu/amne/javascript/134360-varna-att-ingen-ändring-i-ett-fält-har-skett/page2.md
