HTML

Marius '95

troubleShooter
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.
 
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.
 
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.
 
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?
 
Conform regulilor HTML, după codul caracterului se pune punct şi virgulă. De exemplu: &amp;&lt;&gt;α&pound;&copy;&reg;&laquo;&deg;&Ouml; etc.
 
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.
 
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>
 
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.
 
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?
 
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.
 
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>.
 
Atunci foloseşte ID-uri pentru a diferenţia tabelele între ele, şi construieşte CSS-ul ierarhic pentru marcajele subordonate unui ID.
 
Back
Top