WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   xhtml & javascript (https://www.wn.se/forum/showthread.php?t=13631)

caipirinha 2006-04-18 20:18

Inget panik fel men hur gör man nu? har löst det genom att ha det i onload i body men om man
ska fixa det mitt i en sida tex... Till problemet, får error att name tagen inte får finnas längre som
den iofs inte får i strict läget i form. Men att använda id funkar ju inte, eller? kanske ska skrivas på
något annat sätt. Gamla koden var

printf("<script type=\"text/javascript\">");
printf("document.form_search.form_keyword.focus(); ");
printf("</script>");

tartareandesire 2006-04-18 20:30

Jo, id fungerar, du får skriva document.forms['id']....osv istället.

Jonas 2006-04-18 20:52

Citat:

Originally posted by tartareandesire@Apr 18 2006, 20:30
Jo, id fungerar, du får skriva document.forms['id']....osv istället.
document.getElementById('id')...

Fungerar i alla nya webläsare.

Har för mig att document.forms['id'] är mer MSIE specifikt.

tartareandesire 2006-04-18 21:04

Tror att bägge funkar, åtminstone i IE och Firefox.

caipirinha 2006-04-18 21:18

Tackar Jonas, detta fungerade super

printf("document.getElementById('form_search').url _keywords.focus();");

Förstår bara varför jag inte testat/gjort detta innan, använder ju det på andra javascript koder *skratt* som
typ

document.getElementById(elementid).style.display = 'none';

martine 2006-04-19 03:02

Skärpning! getElementById() fungerar utmärkt från IE 5.

Om man använder den ursprungliga varianten:
document.forms[x] eller document.forms['name'] så hämtar får man en ref till "formobjektet". Antingen läser man av det genom index, dvs vilken ordning formulären kommer på sidan, document.forms[0] är det första. Detta fungerar även i urgamla webläsare. Alternativt använder man t ex document.forms['mittformular'] som ger en ref efter namnet i formulärtaggen (<form name="mittformular">). Att man IE får en ref även om man inte har angivit name utan istället id är en bugg som gör att det ändå fungerar i t ex IE.
Citat:

Har för mig att document.forms['id'] är mer MSIE specifikt.
Det är alltså inte IE specifikt utan det råkar bara fungera i IE, genom (den medvetna?) buggen.

Om man vill referera till enskilda element i ett formulär kan man använda t ex
Kod:

document.forms[0].element[0]
för första formulär-elementet (typ en input eller textarea)
Eller:
Kod:

document.forms[0].element['epost']
för fältet men namn epost i första formuläret.

Man kan alltså läsa t ex värdet i ett fält med både:
Kod:

document.getElementById('epost').value
och
Kod:

document.forms[0].elements['epost'].value
men i första fallet måste man ha en id="epost" i inputen och i andra fallet bara ett name="epost".

caipirinha:
Till:
Citat:

document.getElementById('form_search').url_keyword s.focus();
skulle jag föreslå att du använder:
Kod:

document.getElementById('url_keywords').focus();
så att du inte blandar de olika varianterna eftersom det är tvivelaktigt om det fungerar i alla webläsare.

Anders Larsson 2006-04-19 14:38

Man bör dessutom lägga all javascript i externa filer och inte använda sig av några onClick ovs i sin htmlsida, utan istället attacha det från JS-filen.

Måste springa iväg nu, men jag kan lägga upp ett exempel senare.


Alla tider är GMT +2. Klockan är nu 13:09.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson