Avatar billede bumle90 Nybegynder
18. oktober 2001 - 19:50 Der er 24 kommentarer og
1 løsning

uredigerbar tekst

Hvordan laver man et felt i en form eller andet som har en VALUE ,men brugeren kan ikke ændre i den. Ligesom en label i java ?
Det skal ikke være et text felt. Det skal bare ligne almindelig text, men det skal have en VALUE så jeg kan bruge den string til en variabel oppe i mit javascript
Avatar billede olebole Juniormester
18. oktober 2001 - 19:55 #1
<ole>
Er der en speciel grund til, at du ikke vil bruge en <td>? Skal du også understøtte NS4.x?
/mvh
</bole>
Avatar billede bumle90 Nybegynder
18. oktober 2001 - 19:58 #2
Hvad mener du med at den skal understøtte NS4 ?
Og hvad skulle det hjælpe at sætte det ind i en tabel?
Kan man definere feltet til at have en value da?
Avatar billede jakoba Nybegynder
18. oktober 2001 - 19:58 #3
de fleste feltet har en property  disabled:

<input type=\'text\' Disabled> 

det felt kan der ikke skrives i. (desværre bliver det også gråt)

Nok den bedste er en  onfocus=\"this.blur()\"  handler i feltet:

<input type=\'text\' onfocus=\"this.blur()\">

så er det umuligt for brugeren at skrive eller ændre noget i det felt.

Det virker også på et textarea.

mvh JakobA
Avatar billede olebole Juniormester
18. oktober 2001 - 20:01 #4
<td id=\"ib\">tekst</td>


tilgås i IE4 me document.all.ib.innerHTML
og i andre (undtagen NS4.x) med document.getElementById(\"ib\").innerHTML

/mvh
Avatar billede martinfrost Nybegynder
18. oktober 2001 - 20:03 #5
Du kan vel altid sætte:

<div id=\"whatever\">Uredigerbar tekst</div>

som kan kaldes eller sættes i javascript ved:

<script>
whatever.innerHTML =
</script>

Hvis div\'erne ødelægger dit design, kan du bruge <a id=\"whatever\"> UREDIGERBAR TEKST </a>
i stedet for.

På den måde benytter du altså innerHTML-funktionen, som \"value\"...

mvh.
Martin
Avatar billede olebole Juniormester
18. oktober 2001 - 20:08 #6
...eller <span></span> ....de er beregnet til det i modsætning til <a></a>!
På den anden side vil jeg gerne rose martinfrost (han trænger...!) for hans forslag alligevel.
<a> har nemlig den fordel fremfor <span>, at den modtager styles på borders - men laver ikke linieskift som <div> gør det  ;o)

jakoba >> nuvel....det virker - men æstetikken...!  ;oD
/mvh
Avatar billede martinfrost Nybegynder
18. oktober 2001 - 20:12 #7
Så lærte jeg også noget her, for jeg vidste sq ik, at <span> netop fra beregnet til dette :)

/ martin
Avatar billede olebole Juniormester
18. oktober 2001 - 20:35 #8
<span> og <div> er oprindelig beregnet som \'neutrale\' containere til at \'opbevare\' og formatere tekst- og billedelementer i.
<a> er et anker, du kan give et navn....kalde det i et link med en \'havelåge\' (#) foran navnet - så springer man til stedet på siden, hvor ankeret er skrevet ind.

Med CSS og JavaScript er det endvidere muligt at pynte, flytte, gemme skrive til og læse fra den slags container-elementer.
I princippet kan man anvende de fleste HTML-tags til den slags, men <div> og <span> er de to, der ellers ikke har et formål...de er \'neutrale containere\'.

Jeg kan som et kuriosum nævne, at MS\' knap/menu-bar i OutLook Exchange er bygget op efter metoden:
  <a style=\"border:1px #farve solid\" onmouseover=\"this.style.border=\'1px #farve outset\'\" onclick=\"klikFunktion();this.style.border=\'1px #farve inset\'\" onmouseout=\"this.style.border=\'1px #farve solid\'\">Billede og tekst</a>

...se det kunne ikke være lavet med <span>, da de ikke tager \'style.border\'. <div> ville lave liniebrud, hvis ikke de blev positioneret absolut...derfor <a></a>
/mvh
Avatar billede olebole Juniormester
18. oktober 2001 - 20:38 #9
...baggrunden udenom knappen og knappens egen baggrundsfarve sættes ligeledes til #farve  ;o)
Avatar billede bumle90 Nybegynder
19. oktober 2001 - 11:44 #10
Nu har jeg skrevet
<td>
        $<div id=\"pris_1-1\">500</div>,-
</td>

Men det kommer til at stå således på skærmen:
$
500
,-
Hvordan får jeg det hele til at stå på 1 linie uden at putte tegnene $,- ind i <DIV> tagsne?
Avatar billede martinfrost Nybegynder
19. oktober 2001 - 11:47 #11
Brug $<a id=\"pris 1-1\">500</a>,-

i stedet for :)
Avatar billede bumle90 Nybegynder
19. oktober 2001 - 12:26 #12
I har alle svaret godt og kvalificeret, så I har faktisk fortjent pointene ligemeget. Så jeg har bare valgt en af jer, kunne lige så godt have været en af jer andre. Men tusind tak for hjælpen
Avatar billede jakoba Nybegynder
19. oktober 2001 - 12:37 #13
fair enuft :-))
Avatar billede bumle90 Nybegynder
19. oktober 2001 - 13:50 #14
Men jeg kan ikke få det til at virke. den skriver at document.navn.innerHTML ikke er et objekt, Jeg referer til det på følgende måde

function temp_1_1()
{
this.type=document.navn_1_1.innerHTML;
this.pris=document.pris_1_1.innerHTML;
this.antal=document.gunform.antal_1_1.value;
}
Avatar billede jakoba Nybegynder
19. oktober 2001 - 14:04 #15
check stavning og store/små bogstaver i navnet.

post evt et link til noget mere kode
Avatar billede martinfrost Nybegynder
19. oktober 2001 - 14:07 #16
Jeg tror ikke du \"skal\" bruge document ved de referencer med innerHTML :)

bare skriv
this.type=navn_1_1.innerHTML


Det virker i hvert fald ved mig...
/ Martin
Avatar billede jakoba Nybegynder
19. oktober 2001 - 14:15 #17
martinfrost >> det er en af dem der virker i IE, men er ukorrekt javascript :(

korrekt adressering af en div er noget i retning af:

var divObj;  // modtager referencen
if ( document.getElementById )
    divObj = document.getElementById( \'divNavn\' )
else
if ( document.all )
    divObj = document.all[ \'divNavn\' ]
else
    alert( \"der kan alligevel ikke bruges innerHTML i denne div\" );

Vi kan hurtigt blive enige om at det er fristende at bruge den korte form :-))

mvh JakobA
Avatar billede martinfrost Nybegynder
19. oktober 2001 - 14:20 #18
Ja, det er jo det. Jeg har nemlig aldrig haft en HTML/JavaScript bog eller fået nogen form for undervisning i det, så jeg ved kun hvad der virker ud fra, hvad jeg selv har prøvet - og ja, jeg synes da også de virkede lidt ulogisk, hvis document. skulle fjernes :)

Men så lærte jeg noget igen :)

mvh
Martin
Avatar billede bumle90 Nybegynder
19. oktober 2001 - 14:26 #19
Jeg kan ikke få skidtet til at virke. Det er meningen at jeg vil opretter objektet, og derefter udskrive det for at se om den har fået de rigtige tal. Her er koden.

<HTML>
<HEAD>
<SCRIPT LANGUAGE=\"javascript\">
pistolarray=new Array(20);

function temp_1_1()
{
this.type=document.pistoltabel.navn_1_1.innerHTML;
this.pris=document.pistoltabel.pris_1_1.innerHTML;
this.antal=document.gunform.antal_1_1.value;
this.udskriv=udskriv();
}

function udskriv()
{
document.write(\"\"+this.type+\" \"+this.pris+\" \"+this.antal);
}

function opret_obj()
{
pistolarray[0]=new temp_1_1();
}

</SCRIPT>
</HEAD>
<BODY>

<table BORDER=0 cellspacing=15 NAME=\"pistoltabel\">

<form name=\"gunform\" method=get>
<tr>
    <td>     
<a id=\"navn_1_1\">H&K USP .45 Tactical (K&M .45)</a>
    </td>
    <td>
        $<a id=\"pris_1_1\">500</a>,-
    </td>
    <td>     
        <INPUT NAME=\"antal_1_1\" TYPE=\"text\">
    </td>     
</tr>
<tr>
    <td>     
    <INPUT NAME=\"submit\" TYPE=\"BUTTON\" VALUE=\"Læg varer i indkøbskurven\" onClick=\"opret_obj();\">
    </td>     
</tr>
</form>
<table>
</BODY>
</HTML>
Avatar billede martinfrost Nybegynder
19. oktober 2001 - 14:40 #20
Jeg er sq ikke helt med på det med object-oprettelsen, men i hvert fald tror jeg nok, at denne kode, virker som du vil ha den til - eller?

<HTML>
<HEAD>
<SCRIPT LANGUAGE=\"javascript\">
pistolarray=new Array(20);

function temp1()
{
type=navn1_1.innerHTML;
pris=pris1_1.innerHTML;
antal=document.gunform.antal1.value;
udskriv=udskriv();
}

function udskriv()
{
document.write(\"\"+type+\" \"+pris+\" \"+antal);
}

function opret_obj()
{
pistolarray[0]=new temp1();
}

</SCRIPT>
</HEAD>
<BODY>

<table BORDER=0 cellspacing=15 NAME=\"pistoltabel\">

<form name=\"gunform\" method=get>
<tr>
    <td>     
<a id=\"navn1_1\">H&K USP .45 Tactical (K&M .45)</a>
    </td>
    <td>
        $<a id=\"pris1_1\">500</a>,-
    </td>
    <td>     
        <INPUT NAME=\"antal1\" TYPE=\"text\">
    </td>     
</tr>
<tr>
    <td>     
    <INPUT NAME=\"submit\" TYPE=\"BUTTON\" VALUE=\"Læg varer i indkøbskurven\" onClick=\"opret_obj();\">
    </td>     
</tr>
</form>
<table>
</BODY>
</HTML>   


(Dog uden document. foran innerHTML\'erne, men det må du lige få Jakoba til at kigge på, hvis de skal med på en eller anden måde - jeg kan ikke få det til at funge hvis de er med, men jeg tror de skal med på en eller anden måde)...

mvh
martin
Avatar billede jakoba Nybegynder
19. oktober 2001 - 14:50 #21
<HTML>
<HEAD>
<META NAME=\"Generator\" CONTENT=\"Stone\'s WebWriter 3\">
<SCRIPT LANGUAGE=\"javascript\">
pistolarray=new Array(20);

function getElm ( navn ) {  // virker kun i et IE eller DOM miljø
    if ( document.getElementById )
        return document.getElementById( navn )
    else
    if ( document.all )
        return document.all[ navn ];
    alert( \"der kan alligevel ikke bruges innerHTML i denne div\" );
    return null;
}; //end getElm

function temp_1_1() {
    var nvn = getElm(\'navn_1_1\');
    this.type=nvn.innerHTML;
    var prs = getElm(\'pris_1_1\');
    this.pris=prs.innerHTML;
    this.antal=document.gunform.antal_1_1.value;
    this.udskriv=udskriv;
}

function udskriv() {
    document.gunform.debug.value += \"\"+this.type+\" \"+this.pris+\" \"+this.antal +\"\\n\";
}

function opret_obj() {
    var obj = new temp_1_1();
    obj.udskriv();
    pistolarray[pistolarray.lengt]=obj;
}

</SCRIPT>
</HEAD>
<BODY>

<table BORDER=0 cellspacing=15 NAME=\"pistoltabel\">

<form name=\"gunform\" method=get>
<tr>
    <td>   
<a id=\"navn_1_1\">H&K USP .45 Tactical (K&M .45)</a>
    </td>
    <td>
        $<a id=\"pris_1_1\">500</a>,-
    </td>
    <td>   
        <INPUT NAME=\"antal_1_1\" TYPE=\"text\">
    </td>   
</tr>
<tr>
    <td>   
    <INPUT NAME=\"submit\" TYPE=\"BUTTON\" VALUE=\"Læg varer i indkøbskurven\" onClick=\"opret_obj();\">
    </td>   
</tr>
<tr>
    <td><textarea name=\'debug\' rows=4 cols=55 wrap=\'logical\'></textarea>
    </td>
</form>
</table>

<p align=\'right\'><!-- WebWriter AutoDato -->Opdateret: 19.10.2001<!-- WW -->
</BODY>
</HTML>
Avatar billede jakoba Nybegynder
19. oktober 2001 - 14:54 #22
pas på med at bruge  document.write(...)  til at debugge. Når siden er loadet vil et senere kald til document.write skrotte hele siden for at gøre plads til det man skriver.
Avatar billede bumle90 Nybegynder
19. oktober 2001 - 15:44 #23
hmmm jeg må være meget dårlig til at lave javascript, men jeg kan altså simpelthen ikke få det til at virke. Martin med din kan jeg godt få skidtet til at virke med det første objekt jeg skal oprtte, men de efterfølgende 5 virker det ikke. Jakoba, dit eksempel kan jeg slet ikke få til at virke. Og den der test du lave i starten med om mand overhovedet KAN bruge innerHTML, hvorfra bliver den kaldt. For mig at se er det bare en funktion der står og ikke laver noget. Jeg prøver lige at sende hele koden, som den ser ud i øjeblikket. I skal nok begge få point bagefter...

<HTML>
<HEAD>
<SCRIPT LANGUAGE=\"javascript\">
pistolarray=new Array(20);

function getElm ( navn )
{  // virker kun i et IE eller DOM miljø
    if ( document.getElementById )
        return document.getElementById( navn )
    else
    if ( document.all )
        return document.all[ navn ];
    alert( \"der kan alligevel ikke bruges innerHTML i denne div\" );
    return null;
}; //end getElm


function temp_1_1()
{
type=navn_1_1.innerHTML;
pris=pris_1_1.innerHTML;
antal=document.gunform.antal_1_1.value;
udskriv=udskriv();
}

function temp_1_2()
{
type=navn_1_2.innerHTML;
pris=pris_1_2.innerHTML;
antal=document.gunform.antal_1_2.value;
udskriv=udskriv();
}

function temp_1_3()
{
type=navn_1_3.innerHTML;
pris=pris_1_3.innerHTML;
antal=document.gunform.antal_1_3.value;
udskriv=udskriv();
}

function temp_1_4()
{
type=navn_1_4.innerHTML;
pris=pris_1_4.innerHTML;
antal=document.gunform.antal_1_4.value;
udskriv=udskriv();
}

function temp_1_5()
{
type=navn_1_5.innerHTML;
pris=pris_1_5.innerHTML;
antal=document.gunform.antal_1_5.value;
udskriv=udskriv();
}

function temp_1_6()
{
type=navn_1_6.innerHTML;
pris=pris_1_6.innerHTML;
antal=document.gunform.antal_1_6.value;
udskriv=udskriv();
}

function udskriv()
{
document.write(\"\"+this.type+\" \"+this.pris+\" \"+this.antal);
}


function opret_obj()
{
pistolarray[0]=new temp_1_1();
pistolarray[1]=new temp_1_2();
pistolarray[2]=new temp_1_3();
pistolarray[3]=new temp_1_4();
pistolarray[4]=new temp_1_5();
pistolarray[5]=new temp_1_6();
}

</SCRIPT>
</HEAD>
<BODY>

<table BORDER=0 cellspacing=15 NAME=\"pistoltabel\">
<form name=\"gunform\" method=get>
<tr>
    <td>
    Type
    </td>
    <td>
    Pris
    </td>
    <td>
    Antal våben
    </td>
</tr>

<tr>
    <td>     
        <a id=\"navn_1_1\">H&K USP .45 Tactical (K&M .45)</a>
    </td>
    <td>
        $<a id=\"pris_1_1\">500</a>,-
    </td>
    <td>     
        <INPUT NAME=\"antal_1_1\" TYPE=\"text\">
    </td>     
</tr>
<tr>

    <td>     
        <a id=\"navn_1_2\">Glock G18 Select Fire (9x19mm)</a>
    </td>
    <td>
        $<a id=\"pris_1_2\">400</a>,-
    </td>
    <td>     
        <INPUT NAME=\"antal_1_2\" TYPE=\"text\">
    </td>     
</tr>
<tr>

    <td>     
        <a id=\"navn_1_3\">Desert Eagle .50 AE (Nighthawk)</a>
    </td>
    <td>
        $<a id=\"pris_1_3\">650</a>,-
    </td>
    <td>     
        <INPUT NAME=\"antal_1_3\" TYPE=\"text\">
    </td>     
</tr><tr>
    <td>     
        <a id=\"navn_1_4\">SIG P228 (228)</a>
    </td>
    <td>
        $<a id=\"pris_1_4\">600</a>,-
    </td>
    <td>     
        <INPUT NAME=\"antal_1_4\" TYPE=\"text\">
    </td>     
</tr><tr>
    <td>     
        <a id=\"navn_1_5\">Dual Beretta 96G (.40 Dual Elites)</a>
    </td>
    <td>
        $<a id=\"pris_1_5\">1000</a>,-
    </td>
    <td>     
        <INPUT NAME=\"antal_1_5\" TYPE=\"text\">
    </td>     
</tr><tr>
    <td>     
        <a id=\"navn_1_6\">FN Five Seven</a>
    </td>
    <td>
        $<a id=\"pris_1_6\">750</a>,-
    </td>
    <td>     
        <INPUT NAME=\"antal_1_6\" TYPE=\"text\">
    </td>     
</tr><tr>
    <td>     
    <INPUT NAME=\"submit\" TYPE=\"BUTTON\" VALUE=\"Læg varer i indkøbskurven\" onClick=\"opret_obj();\">
    </td>     
</tr>
</form>


<table>

</BODY>
</HTML>
Avatar billede bumle90 Nybegynder
19. oktober 2001 - 15:47 #24
Sådan som det er nu gemmer og udskriver den det første objekt....resten kan den vidst ikke finde
Avatar billede jakoba Nybegynder
19. oktober 2001 - 16:04 #25
din første document.write sletter hele siden.
Prøv at sige \"vis kilde\" før og så efter du klikker på knappen.

funktionen getElm bruges til at få fat i de rigtige html-elementer. den kaldes 2 gange først i din temp_1_1 funktion.
function temp_1_1() {
    var nvn = getElm(\'navn_1_1\');
    this.type=nvn.innerHTML;
    var prs = getElm(\'pris_1_1\');

din linie
udskriv=udskriv();
kalder funktionen udskriv. for at lægge funktionen ind som lokal funktion i objektet skal du blot skrive:
this.udskriv = udskriv;  //NB uden parenteser efter

mvh JakobA

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester