1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

HTML

Discussion in 'Software și sisteme de operare' started by Marius '95, May 16, 2007.

  1. Marius '95

    Marius '95 Membru Senior

    Ma sacaie o intrebare: Cum fac intr-o pagina html cu un formular sa-mi apara cursorul tastaturii direct intr-unul din campuri, fara sa fie nevoie de un clic?
    Sau cum fac ca un anumit buton "submit" sa fie preselectat, adica sa trebuiasca doar sa apas tasta "space" ca sa apas butonul.
     
  2. miahi

    miahi Wizzard

    1. object.focus()
    2. setezi tabindex=1 pentru butonul respectiv
     
  3. puterfixer

    puterfixer Administrator

    Cu un scriptuleţ JavaScript care se activează la evenimentul onLoad al paginii. Par egzamplu:
    Code:
    <body onLoad="javascript:document.NumeFormular.NumeTextbox.focus();">
    <form name="NumeFormular" action="http://url.to.script/" method="get">
    <input type="text" name="NumeTextbox">
    <input type="Submit" value="Trimite-ma">
    </form>
    Submit-ul se face apăsând Enter în formular, care activează butonul implicit al formularului (cel definit ca Submit). Dacă vrei, poţi pune focusul pe acest buton la încărcarea paginii, astfel încât la apăsarea tastei spaţiu să se activeze.
     
  4. whiskas

    whiskas Chronic suicidal

    Foloseşte atributul tabindex. ECMA Script nu există întotdeauna.
     
  5. Marius '95

    Marius '95 Membru Senior

    OK. La javascript nu ma bag ca nu ma pricep, dar am incercat chestia cu tabindex si am obtinut rezultate... bune. Trebuie doar sa apas "tab" ca sa apara cursorul unde trebuie. Cata vreme nu trebuie sa ma mai intind dupa mouse, e ok.
    Multumesc.
     
  6. Marius '95

    Marius '95 Membru Senior

    Am alta problema.
    Incerc sa scriu "alfa1" cu caracterul grecesc alfa si nu-mi iese. Am incercat cu &#9451 dar nu merge, iar &#945 1 lasa un spatiu nedorit intre alfa si 1.
    Stie cineva cum rezolv chestia asta?
     
  7. Rabbit

    Rabbit Nebun

    &#945<b></b>1? :smile:
     
    1 person likes this.
  8. Marius '95

    Marius '95 Membru Senior

    Thx! Merge. :smile:
     
  9. puterfixer

    puterfixer Administrator

    Conform regulilor HTML, după codul caracterului se pune punct şi virgulă. De exemplu: &amp;&lt;&gt;α&pound;&copy;&reg;&laquo;&deg;&Ouml; etc.
     
    2 people like this.
  10. Marius '95

    Marius '95 Membru Senior

    Alta problema, de data asta s-ar putea sa fie cam complicat. :rolleyes:

    Am o pagina impartita in doua: in stanga un formular, in dreapta un help despre cum se completeaza formularul. Formularul este de genul:
    Nume camp: <input>
    Nume camp: <input>
    ... , este aliniat folosind un tabel si este dinamic; poate fi ingust sau foarte lat in functie de ce "nume camp" apar. Textul help este un pic cam mare, contine liste de optiuni.
    Problema mea este ca vreau ca indiferent de rezolutie sau marimea ferestrei formularul sa apara pe pagina intreg, fara a fi nevoie de scroll si fara a rupe randurile, si in acelasi timp nu vreau sa irosesc spatiu care altfel ar putea fi folosit pentru textul help din dreapta.

    Pana acum am incercat cu tabel cu 2 celule: in celula din stanga, in dreapta help-ul. Nu-mi place fiindca help-ul, fiind mare, inghesuie formularul mult in stanga si "nume camp" apare pe 2-3 linii.
    Am mai incercat sa setez o dimensiune fixa pentru tabelul cu formularul dar, continutul fiind dinamic, uneori nu incape, alteori ramane mult spatiu liber.

    Intrebarea este cum fac pagina astfel incat formularul sa ocupe exact atat spatiu cat ii trebuie pentru a fi afisat fara a rupe randurile si fara spatiu irosit, in timp ce help-ul sa ocupe restul spatiului ramas in dreapta formularului? Si asta la orice rezolutie, marime font, etc.
     
  11. Mă gândesc, nu poţi folosi select-uri în loc de input?
     
  12. Marius '95

    Marius '95 Membru Senior

    Nu. Sau foarte greu. Si nu vad cu ce ma ajuta.
     
  13. sabertooth

    sabertooth Membru Senior

    Poti pune la trei celule:

    - prima contine labelul pentru input. Aici pentru a nu se rupe randul pui td nowrap
    - a doua celula contine inputul propriu-zis
    - a treia celula contine help-ul care presupun ca este pentru fiecare input. Daca nu este pentru fiecare input si este un help global pentru tot formularul atunci la prima linie cu celule la celula care contine help-ul vei pune un rowspan.

    Exemplu:

    <table cellspacing="2" cellpadding="2" border="1">
    <tr>
    <td nowrap>Label></td><td><input name="gogu" type="text"></td><td rowspan="cate linii (tr-uri) are tabelul">Help-u' lu' peste</td>
    </tr>
    <tr>
    <td nowrap>Label></td><td><input name="gogu" type="text"></td>
    </tr>
    </table>
     
  14. Azazel

    Azazel Barbar

    Pune aici un exemplu. Poti genera si dimensiunea celulelor dinamic, si a input-urilor, etc.
     
  15. Marius '95

    Marius '95 Membru Senior

    Plec in weekend. Luni o sa incerc recomandarea lui sabertooth cu nowrap si daca nu iese ce trebuie, va arat si exemple.
    Multumesc pt sugestii.
     
  16. Marius '95

    Marius '95 Membru Senior

    Testat:
    - Daca scriu style="white-space:nowrap" la fiecare <td>, merge. Nu mi-e greu sa le scriu la fiecare <td> dar codul e deja cam complex si devine destul de greu de citit.
    - Daca scriu style="white-space:nowrap" doar la <table>, in IE nu se propaga la <td>-uri, in timp ce in Opera merge perfect.

    Exista vreo metoda obscura de a face style-ul sa se aplice la tot continutul tabelului fara a-l scrie de n-spe ori?
     
  17. miahi

    miahi Wizzard

    Vezi cum se aplică CSS la TABLE. Ai nevoie de ceva de genul:

    Code:
        <STYLE type="text/css">
          TABLE { white-space:nowrap; }
          TD    { white-space:nowrap; }
        </STYLE>
    Am pus la ambele, că e posibil să nu afişeze la fel în browsere. Dacă ai mai multe tabele şi nu vrei să fie toate cu nowrap, poţi să-i pui un nume la stil şi pui <table class="blabla">, vezi aici.
     
  18. Marius '95

    Marius '95 Membru Senior

    Stiam asta dar nu pot face asa. Nu pot aplica la toate <td>-urile ca mai am si alte tabele.
    Iar <table class="blabla"> nu functioneaza nici el in IE. Trebuie class=... la fiecare <td>.
     
  19. puterfixer

    puterfixer Administrator

    Atunci foloseşte ID-uri pentru a diferenţia tabelele între ele, şi construieşte CSS-ul ierarhic pentru marcajele subordonate unui ID.
     
  20. Marius '95

    Marius '95 Membru Senior

    Incerc. Multumesc pt sugestie.