/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
onBlur = 0 hvis inputfeltet er tomt
Fra : Ace


Dato : 02-09-10 08:45

Hej

Kan man gøre således, at hvis et input-felt efterlades
tomt/blankt, at der så automatisk indsættes et 0 (nul) i feltet?

Jeg formoder at man kan tage onBlur i brug her, men derudover jeg
blank :)

Kan nogen evt. give et script-eksempel på hvordan dette kan
gøres?

På forhånd tak.

Ace

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Birger Sørensen (02-09-2010)
Kommentar
Fra : Birger Sørensen


Dato : 02-09-10 09:01

Følgende er skrevet af Ace:
> Hej
>
> Kan man gøre således, at hvis et input-felt efterlades
> tomt/blankt, at der så automatisk indsættes et 0 (nul) i feltet?
>
> Jeg formoder at man kan tage onBlur i brug her, men derudover jeg
> blank :)
>
> Kan nogen evt. give et script-eksempel på hvordan dette kan
> gøres?
>
> På forhånd tak.
>
> Ace

<input id="no_tom" onblur="CheckNoTom()"... >

function CheckNoTom() {
elm = document.getElementById( 'no_tom');
if ( elm && ( elm.value == '')) {
elm.value = '0';
}
}

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Ace (02-09-2010)
Kommentar
Fra : Ace


Dato : 02-09-10 09:15

Birger Sørensen skrev følgende:
>
> <input id="no_tom" onblur="CheckNoTom()"... >
>
> function CheckNoTom() {
> elm = document.getElementById( 'no_tom');
> if ( elm && ( elm.value == '')) {
> elm.value = '0';
> }
> }

1000 tak Birger, det virker perfekt :)

Nu har jeg ganske vidst en hel del input-felter, så troede egentlig
at man så bare kunne erstatte
elm = document.getElementById( 'no_tom');
med
elm = document.getElementByTagName( 'input');
men den går åbenbart ikke :(

Er der en nem måde at få effekten til at påvirke alle sine
input-felter i ét script?

Venligst

Ace

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin Larsen (02-09-2010)
Kommentar
Fra : Martin Larsen


Dato : 02-09-10 11:11

Ace wrote:

> Er der en nem måde at få effekten til at påvirke alle sine
> input-felter i ét script?

Ja. Hvis du bruger javascript-biblioteker som jQuery eller MooTools.

I jQuery gøres det sådan:

$("input,textarea").blur(function(){
if ( this.value == '' ) {
this.value = '0';
}
})

Så får du med et snuptag effekten på alle input og textarea felter. Du
kan udvide med kun at gøre det på visse css-classer, fx:

$("input.ejtom,textarea.ejtom").blur(function(){ ... }

eller simpelthen

$(".ejtom").blur(function(){ ... }

Således påvirker det ikke uønskede felter, fx søgefeltet.

Om du vil benytte jQuery etc. er nok et spørgsmål om hvad du ellers har
brug for at DOM-manipulation. Jo mere DOM-arbejde, jo bedre betaler det sig.

PS. Så du fejlrettelsen i mit playlist-eksempel?

Hilsen
Martin

Birger Sørensen (02-09-2010)
Kommentar
Fra : Birger Sørensen


Dato : 02-09-10 11:26

Den 02-09-2010, skrev Martin Larsen:
> Ace wrote:
>
>> Er der en nem måde at få effekten til at påvirke alle sine
>> input-felter i ét script?
>
> Ja. Hvis du bruger javascript-biblioteker som jQuery eller MooTools.
>
> I jQuery gøres det sådan:
>
> $("input,textarea").blur(function(){
> if ( this.value == '' ) {
> this.value = '0';
> }
> })
>
> Så får du med et snuptag effekten på alle input og textarea felter. Du kan
> udvide med kun at gøre det på visse css-classer, fx:
>
> $("input.ejtom,textarea.ejtom").blur(function(){ ... }
>
> eller simpelthen
>
> $(".ejtom").blur(function(){ ... }
>
> Således påvirker det ikke uønskede felter, fx søgefeltet.
>
> Om du vil benytte jQuery etc. er nok et spørgsmål om hvad du ellers har brug
> for at DOM-manipulation. Jo mere DOM-arbejde, jo bedre betaler det sig.
>
> PS. Så du fejlrettelsen i mit playlist-eksempel?
>
> Hilsen
> Martin

Det er i den grad overkill at bruge jQuery for 4 liniers kode.

<input id="no_tom" onblur="CheckNoTom( this)"... >

function CheckNoTom( elm) {
if ( elm && ( elm.value == '')) {
elm.value = '0';
}
}

Du kan have så mange input du vil, cheket af den samme kode.
Det behøver man ikke importere 32Kb jQuery for...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Martin Larsen (02-09-2010)
Kommentar
Fra : Martin Larsen


Dato : 02-09-10 11:30

Birger Sørensen wrote:

> Det er i den grad overkill at bruge jQuery for 4 liniers kode.

Derfor skrev jeg også:

"Om du vil benytte jQuery etc. er nok et spørgsmål om hvad du ellers har
brug for at DOM-manipulation. Jo mere DOM-arbejde, jo bedre betaler det
sig."

Martin

Birger Sørensen (02-09-2010)
Kommentar
Fra : Birger Sørensen


Dato : 02-09-10 22:48

Birger Sørensen:
> Den 02-09-2010, skrev Martin Larsen:
>> Ace wrote:
>>
>>> Er der en nem måde at få effekten til at påvirke alle sine
>>> input-felter i ét script?
>>
>> Ja. Hvis du bruger javascript-biblioteker som jQuery eller MooTools.
>>
>> I jQuery gøres det sådan:
>>
>> $("input,textarea").blur(function(){
>> if ( this.value == '' ) {
>> this.value = '0';
>> }
>> })
>>
>> Så får du med et snuptag effekten på alle input og textarea felter. Du kan
>> udvide med kun at gøre det på visse css-classer, fx:
>>
>> $("input.ejtom,textarea.ejtom").blur(function(){ ... }
>>
>> eller simpelthen
>>
>> $(".ejtom").blur(function(){ ... }
>>
>> Således påvirker det ikke uønskede felter, fx søgefeltet.
>>
>> Om du vil benytte jQuery etc. er nok et spørgsmål om hvad du ellers har
>> brug for at DOM-manipulation. Jo mere DOM-arbejde, jo bedre betaler det
>> sig.
>>
>> PS. Så du fejlrettelsen i mit playlist-eksempel?
>>
>> Hilsen
>> Martin
>
> Det er i den grad overkill at bruge jQuery for 4 liniers kode.
>
> <input id="no_tom" onblur="CheckNoTom( this)"... >
>
> function CheckNoTom( elm) {
> if ( elm && ( elm.value == '')) {
> elm.value = '0';
> }
> }
>
> Du kan have så mange input du vil, cheket af den samme kode.
> Det behøver man ikke importere 32Kb jQuery for...
>
> Birger

Det er faktisk ikke nødvendigt for scriptet at <input ..> har id, i
dette eksempel.
Bruger man labels i sin opbygning af formen, er det en god ide at have
det alligevel - label'en peger på den tilhørende input med id'et.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Lasse Reichstein Nie~ (03-09-2010)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 03-09-10 16:35

Ace <ace@clubace.dk> writes:

> Birger Sørensen skrev følgende:
>>
>> <input id="no_tom" onblur="CheckNoTom()"... >
>>
>> function CheckNoTom() {
>> elm = document.getElementById( 'no_tom');
>> if ( elm && ( elm.value == '')) {
>> elm.value = '0';
>> }
>> }
>
> 1000 tak Birger, det virker perfekt :)
>
> Nu har jeg ganske vidst en hel del input-felter, så troede egentlig
> at man så bare kunne erstatte
> elm = document.getElementById( 'no_tom');
> med
> elm = document.getElementByTagName( 'input');
> men den går åbenbart ikke :(
>
> Er der en nem måde at få effekten til at påvirke alle sine
> input-felter i ét script?

Prøv fx:
----
<script>
function setIfEmpty(element, value) {
if (/^\s*$/.test(element.value)) element.value = value;
}
</script>
....
<input .... onblur="setIfEmpty(this, 0);">

----
og sæt den onblur på alle de input du vil hve den til at virke på.

Det er overkill at bruge getElementById når man står med elementet
i hånden i event-handleren.
/L
--
Lasse Reichstein Holst Nielsen
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407859
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste