Mam pudełka wejściowe i teksturę, które muszą być przełączane między wyrównaniem lewym i prawym wyrównaniem (w zależności od języka użytkownika, kierunek byłby inny). Jak mogę to zrobić z jQuery?

5
Kate Wintz 22 grudzień 2011, 00:49

6 odpowiedzi

Najlepsza odpowiedź

Tutaj mam całkowicie przebudowany skrypt Mohammada, ale jest ograniczony do swojego celu: skanowanie, jeśli pierwsza litera Typy użytkowników w jest perskim i zmiana kierunku wejść zgodnie z.

Oto: jsfiddle.net/uph7n/4

3
Matmarbon 28 grudzień 2011, 10:34

Ponieważ nie znam kluczowego kodu dla wszystkich listów perskich, musiałem to zrobić tak:

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');
}
4
Siamak A.Motlagh 7 październik 2014, 15:22

Możesz użyć dir="auto" atrybutu w nowoczesnych przeglądarkach: Demo na żywo
.

<input type="text" dir="auto"><br>

Możesz też zrobić to przez jQuery: Demo na żywo

$('input, textarea').keyup(function() {
    $(this).val().charAt(0).charCodeAt(0) < 200 ? $(this).css('direction','ltr') : $(this).css('direction','rtl');
});
2
Siamak A.Motlagh 16 lipiec 2014, 14:22

Przełącz elementy CSS z jQuery (zakładając, że odpowiednie wejścia / teksturę wszystkie mają klasę textdirectionBoxes):

$('.textdirectionBoxes').css('direction', 'rtl');

I

$('.textdirectionBoxes').css('direction', 'ltr');
0
Dominik Sandjaja 21 grudzień 2011, 21:16

Co powiesz na

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' );
});

?

Edytuj: Naprawiono niewielki błąd kodu

0
Matmarbon 21 grudzień 2011, 21:46
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'
        );
    });
});
0
Amin 15 sierpień 2015, 15:46