2011-09-23 21 views
16

Per il mio sito Web, ho bisogno di fornire supporto arabo. Parte di esso è di fornire caselle di testo di input in cui quando l'utente digita, i nuovi caratteri devono essere aggiunti a sinistra e il testo deve essere allineato correttamente.Da destra a sinistra Testo Ingresso HTML

impostando la proprietà CSS per

text-align:right 

non ha funzionato, come non ho potuto ottenere il cursore a venire a sinistra e aggiungere le lettere lì. Così ho rimosso che la proprietà e ha aggiunto

direction:RTL 

Qui, il cursore è venuto a sinistra e il testo è stato allineato a destra. ma i nuovi personaggi aggiunti non venivano aggiunti alla sinistra. Invece venivano aggiunti solo all'estremità destra.

Come posso risolvere questo problema? per favore aiuto ..

Per esempio, vedi la casella di ricerca della pagina di google araba. Ho bisogno l'esatto comportamento, anche se non con quelli icona della tastiera fantasia ecc, http://www.google.com/webhp?hl=ar

+0

Normalmente testo qui farebbe exacly, ma quando si riceve il testo da un modulo o tali, non funzionerà. –

+0

Potresti pubblicare la tua soluzione? –

risposta

21

Ecco cosa mi viene in mente:

  • Usa direction:RTL per l'allineamento a destra
  • Scrivi un gestore JavaScript attaccato al evento: "onkeyup", che esegue lo spostamento del carattere inserito a SINISTRA (facendo un po 'di elaborazione del testo).
+1

Ha funzionato perfettamente :) –

+1

Ahmed puoi condividere il modo in cui sei riuscito a capirlo? –

+1

Un violino sarebbe carino. Grazie –

7
function rtl(element) 
{ 
    if(element.setSelectionRange){ 
     element.setSelectionRange(0,0); 
    } 
} 




<input type="text" name="textbox" style="direction:RTL;" onkeyup="rtl(this);"/> 

Questo codice farà.

4

Utilizzare solo direction:RTL e quando si passa a una tastiera corretta (ad esempio arabo) nelle impostazioni di sistema, i caratteri appena aggiunti verranno aggiunti correttamente a sinistra.

13

È possibile utilizzare il dir = "rtl" sull'input. È supportato.

<input dir="rtl" id="foo"/> 
0

Utilizzare sull'ingresso in css.

input { 
    unicode-bidi:bidi-override; 
    direction: RTL; 
} 
Problemi correlati