Tengo cuadros de entrada y áreas de texto que deben alternar entre alineado a la izquierda y alineación a la derecha (dependiendo del idioma del usuario, la dirección sería diferente) ¿Cómo puedo hacer esto con jQuery?Use jQuery para alternar entre alineación de texto izquierda y derecha, según el idioma
Respuesta
Aquí he revisado por completo el guión de Mohammad pero es limitada a su propósito: digitalización si la primera letra el usuario teclea es persa y cambiar la dirección de los insumos de acuerdo.
Aquí está: jsfiddle.net/uPH7N/4
Buen trabajo, Aquí una lista completa de ellos para los idiomas árabe y persa. 'this.characters = ['ا', 'أ', 'إ', 'آ', 'ء', 'ى', 'ب', 'پ', 'ت', 'ث', 'ج' , 'ح', 'خ', 'چ', 'د', 'ذ', 'ر', 'ز', 'ژ', 'س', 'ش', 'ص', 'ض', ' ط ',' ظ ',' ع ',' غ ',' ف ',' ق ',' ك ',' ک ',' گ ',' ل ',' م ',' ن ',' ه ' , 'ة', 'و', 'ؤ', 'ي', 'ئ']; ' –
Alternar los elementos CSS con jQuery (suponiendo que las entradas pertinentes/áreas de texto tienen la clase textdirectionBoxes
):
$('.textdirectionBoxes').css('direction', 'rtl');
y
$('.textdirectionBoxes').css('direction', 'ltr');
¿Cómo saber si está escribiendo en persa o en latín la palabra por usuario para rtl o ltr? –
¿Entonces la pregunta no es sobre cómo cambiar la dirección del texto sino cómo averiguar el idioma del usuario? –
cuando el usuario escribe valor en la entrada, it o es palabra persa o latina, si era persian => RTL si era latin => LTR. ¿Cómo es? –
Como no sé el código de tecla todas las letras persas, que tenían que hacerlo de esta manera:
var str = $('#item').val(); //this is your text box
var firstChar = str.substr(0,1);
var characters = ['ا','ب','پ','ت','س','ج','چ','ح','خ','د','ذ','ر','ز','ژ','س','ش','ص','ض','ط','ظ','ع','غ','ف','ق','ک','گ','ل','م','ن','و','ه','ی'];
function checkPersian() {
var result = false;
for (i = 0 ; i<32 ; i++) {
if (characters[i] == firstChar) {
result = true;
}
}
return result;
}
if (checkPersian()) {
$('#item').css('direction','rtl');
} else {
$('#item').css('direction','ltr');
}
Preste atención a que debe cambiar su dirección justo cuando la primera letra ingresó en el cuadro de texto. checkPersian() lo comprobará. –
Un hash haría una búsqueda más rápida. Aún mejor sería averiguar si los caracteres persas tienen un conjunto contiguo de puntos de código en utf8. Entonces podrías hacer una prueba numérica simple con charCodeAt(). – jiggy
Sí, tienes razón Jiggy. Mencioné lo que dijiste en la primera línea de mi respuesta. No tengo sus claves. Así que tuve que hacer lo que estás viendo. –
¿Qué hay de
jQuery(document).ready(function(){
var language = navigator.userLanguage || navigator.language;
if(jQuery.inArray(language, ['ar', 'he', 'ur']) != -1)
jQuery('input[type="text"], input[type="password"], textarea').css('direction', 'rtl');
});
?
edición: fijo poco código de errores
No funciona, consulte aquí: http://jsfiddle.net/uPH7N/1/ –
¡Para mí funciona muy bien cuando configuro el navegador de mi navegador en árabe! (http://jsfiddle.net/uPH7N/2/ [edit] o incluso mejor http: // jsfiddle.net/uPH7N/3 /) – Matmarbon
mi navegador de idiomas !!!!!? Quiero obtener el idioma cuando el usuario escribe la palabra en la entrada. no del lenguaje de navegadores. ¿Cómo es? (Me refiero a que el idioma persa (farsi) no es árabe) –
Puede utilizar dir="auto"
atributo en los navegadores modernos: Live Demo
<input type="text" dir="auto"><br>
También puede hacerlo por jQuery así: Live Demo
$('input, textarea').keyup(function() {
$(this).val().charAt(0).charCodeAt(0) < 200 ? $(this).css('direction','ltr') : $(this).css('direction','rtl');
});
function isUnicode(str) {
return (str.charCodeAt(str.length-1) > 255) ? true : false;
}
$('input[type=text]').each(function() {
$(this).keyup(function(e) {
$(this).css('direction',
isUnicode($(this).val()) ? 'rtl' : 'ltr'
);
});
});
Si bien este código puede responder a la pregunta, proporcionar un contexto adicional con respecto a _how_ y/o _por qué_ resuelve el problema mejoraría la respuesta a largo valor a largo plazo –
- 1. Android izquierda, centro y alineación derecha
- 2. Android Layout alineación izquierda y derecha en el diseño horizontal
- 3. Iphone y texto de derecha a izquierda
- 4. CSS - Alineación izquierda y derecha en la misma línea
- 5. Flexslider y compatibilidad de idioma de derecha a izquierda
- 6. Alineación a la derecha y a la izquierda con diseño lineal o relativo con texto truncado?
- 7. texto: derecha a izquierda (CSS)
- 8. alineación de texto de UILabel derecha
- 9. texto de alineación derecha en Emacs
- 10. MeasureString() almohadilla el texto a la izquierda y la derecha
- 11. Alternar texto con jQuery
- 12. jQuery seleccionar según el texto
- 13. Etiqueta de alineación izquierda - Seleccionar elemento de alineación a la derecha (CSS)
- 14. CSS-pasar el texto de izquierda a derecha
- 15. jQuery para animar la imagen de izquierda a derecha?
- 16. Flotador ImageView y TextView (izquierda/derecha) Android
- 17. De derecha a izquierda UILabels
- 18. JList texto alineación
- 19. jQuery: deslice hacia la izquierda y deslice hacia la derecha
- 20. Texto de alineación a la derecha en Android TextView
- 21. Texto de alineación izquierda dentro de un botón en Android
- 22. alternar entre jquery-1.3.2.js y jquery-1.3.2.min.js
- 23. De derecha a izquierda Entrada HTML de texto
- 24. Cuadro de texto de ASP.Net de derecha a izquierda
- 25. Android TextView Alinear texto a la derecha e izquierda
- 26. Cómo alinear a la derecha y alinear cadenas de texto a la izquierda en Bash
- 27. Alternar entre gps y el proveedor de red según la disponibilidad
- 28. jQuery alternar y SI visible
- 29. Android centro de diseño de alineación lineal y derecha
- 30. ¿Cómo acelerar las teclas de flecha izquierda y derecha para editar texto?
No entiendo cuál es su pregunta. ¿Puedes aclarar? –
Creo que OP está intentando alinear dinámicamente el texto en el campo de entrada (ya sea RTL o LTR) según el idioma. –
Tengo un Javascript para esto. ¿Te gustaría o solo quieres jQuery? –