نمایش نتایج 1 تا 2 از 2

نام تاپیک: مشکل یک دست سازی ی و ک دریافتی همزمان با تایپ توسط کاربر

  1. #1

    مشکل یک دست سازی ی و ک دریافتی همزمان با تایپ توسط کاربر

    دوستان من یک textbox داخل وب فرم دارم که جستجو درون مطالب سایت رو به کمک jquery autocomplete انجام میده.
    من نیاز دارم که اگه کیبورد کاربر عربی بود و بجای "ی" حرف "ي" عربی رو تایپ کرد همون لحظه "ي" عربی تبدیل به "ی" فارسی بشه.
    برای این منظور از اسکریپت زیر استفاده میکنم ولی مشکل اینه که این اسکریپت موقع تایپ کاربر عمل نمیکنه و فقط قسمت انتهایی کد که مربوط به paste کردن متن کاربر داخل textbox هست عمل میکنه.
    یعنی اگه کاربر کلمه "بازي" رو تایپ کنه اسکریپت عمل نمیکنه ولی اگر همین کلمه رو جای دیگری تایپ کنه و بعد داخل textbox مربوطه paste کنه، "ي" عربی تصحیح و تبدیل به "ی" فارسی میشه.
    کسی میتونه راهنمایی کنه مشکل از کجاست؟

    function substituteCharInFireFox(charCode, e) {
    var keyEvt = document.createEvent("KeyboardEvent");
    keyEvt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, charCode);
    e.target.dispatchEvent(keyEvt);
    e.preventDefault();
    }

    function substituteCharInChrome(charCode, e) {
    //it does not work yet! /*$.browser.webkit*/
    //https://bugs.webkit.org/show_bug.cgi?id=16735
    var keyEvt = document.createEvent("KeyboardEvent");
    keyEvt.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 0, charCode);
    e.target.dispatchEvent(keyEvt);
    e.preventDefault();
    }

    function insertAtCaret(myValue, e) {
    var obj = e.target;
    var startPos = obj.selectionStart;
    var endPos = obj.selectionEnd;
    var scrollTop = obj.scrollTop;
    obj.value = obj.value.substring(0, startPos) + myValue + obj.value.substring(endPos, obj.value.length);
    obj.focus();
    obj.selectionStart = startPos + myValue.length;
    obj.selectionEnd = startPos + myValue.length;
    obj.scrollTop = scrollTop;
    e.preventDefault();
    }

    $(document).ready(function () {
    var arabicYeCharCode = 1610;
    var persianYeCharCode = 1740;
    var arabicKeCharCode = 1603;
    var persianKeCharCode = 1705;

    $(document).keypress(function (e) {
    var keyCode = e.keyCode ? e.keyCode : e.which;

    if ($.browser.msie) {
    switch (keyCode) {
    case arabicYeCharCode:
    event.keyCode = persianYeCharCode;
    break;
    case arabicKeCharCode:
    event.keyCode = persianKeCharCode;
    break;
    }
    }
    else if ($.browser.mozilla) {
    switch (keyCode) {
    case arabicYeCharCode:
    substituteCharInFireFox(persianYeCharCode, e);
    break;
    case arabicKeCharCode:
    substituteCharInFireFox(persianKeCharCode, e);
    break;
    }
    }
    else {
    switch (keyCode) {
    case arabicYeCharCode:
    insertAtCaret(String.fromCharCode(persianYeCharCod e), e);
    break;
    case arabicKeCharCode:
    insertAtCaret(String.fromCharCode(persianKeCharCod e), e);
    break;
    }
    }
    });

    $('input,textarea').bind('paste', function (e) {
    var el = $(this);
    //we need to wait about 100ms for the paste value to actually change the val()
    setTimeout(function () {
    var text = $(el).val();
    $(el).val(text.replace(new RegExp(String.fromCharCode(arabicYeCharCode), "g"), String.fromCharCode(persianYeCharCode))
    .replace(new RegExp(String.fromCharCode(arabicKeCharCode), "g"), String.fromCharCode(persianKeCharCode)));
    }, 100);
    });
    });

    آخرین ویرایش به وسیله Blackvash13 : یک شنبه 07 شهریور 1395 در 19:05 عصر

  2. #2

    نقل قول: مشکل یک دست سازی ی و ک دریافتی همزمان با تایپ توسط کاربر

    سلام.
    باید از یه همچین چیزی استفاده کنی :


    کد HTML:
        $('#search').focus(persianfix).keyup(persianfix);
    خودت حالا با توجه به کدات اسم فانکشن رو تغییر بده

تاپیک های مشابه

  1. پاسخ: 3
    آخرین پست: دوشنبه 14 آذر 1390, 16:55 عصر
  2. پاسخ: 3
    آخرین پست: چهارشنبه 07 بهمن 1388, 09:51 صبح
  3. مشکل در مرتب سازی اعداد در یک فیلد
    نوشته شده توسط farhadamin در بخش Access
    پاسخ: 15
    آخرین پست: شنبه 28 مرداد 1385, 15:07 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •