کمک در مورد فرمها

farsadf

کاربر عضو
باسلام

این کار شما نه تنها درست نیست بلکه باعث میشود که کاربر گیج شود.

ولی به هر حال شما نمیتوانید به صورت مستقیم بر روی نوشتن کاربر در صفحه ی فرم تاثیر بگذارید ولی خوب میتوانید آن را با php چک کنید:

توضیح فارسی : اگر فرم ارسال شده دارای حروف الفبای انگلیسی بود که هیچ در غیر این صورت متن شما باید انگلیسی تایپ کنید را به نمایش در بیاور.

توضیح زبان php :


کد:
<?php$mystring = 'abc';if (!preg_match('/[^A-Za-z0-9]/', $mystring)) // '/[^a-z\d]/i' should also work.{ echo HI;} else {    echo no;}?>
که در مورد فوق جواب کلمه ی Hi خواهد بود.

نکته : متاسفانه فکر نمیکنم که php بتواند فارسی را نیز اینگونه پردازش کند.

 

william

کاربر عضو
با سلامیک سوال دیگر:

میخواهم وقتی کاربر میخواهد فرم را تکمیل نماید کیبرد را تغییر ندهد وقتی میخواهد نام خانوادگی را پر نماید فارسی تایپ نماید

وقتی میخواهد ایمیل را تایپ کند انگلیسی تایپ نماید
این کار زیاد جالب نیست و اصلاً توصیه نمیشه. اما قابل پیاده سازی هست. یه مثال میزنم که در این روش از جاوااسکریپت استفاده کردم:


کد:
<!DOCTYPE html>
<label for="input">Enter something: </label><input onkeyup="en2fa(event)" type="text" id="input" style="direction:rtl; text-align:right; font-family:Tahoma;" />
<button onclick="document.getElementById('input').value='';inputVal=''">Clear text input</button>
<script>
var input = document.getElementById('input');
var inputVal = input.value;

function en2fa(event) {
    event.preventDefault();
    input.value = '';
    var t = '';
    switch(event.keyCode) {
        case 60 : t = 'و'; break;
        case 65 : t = 'ش'; break;
        case 66 : t = 'ذ'; break;
        case 67 : t = 'ز'; break;
        case 68 : t = 'ی'; break;
        case 69 : t = 'ث'; break;
        case 70 : t = 'ب'; break;
        case 71 : t = 'ل'; break;
        case 72 : t = 'ا'; break;
        case 73 : t = 'ه'; break;
        case 74 : t = 'ت'; break;
        case 75 : t = 'ن'; break;
        case 76 : t = 'م'; break;
        case 77 : t = 'ئ'; break;
        case 78 : t = 'د'; break;
        case 79 : t = 'خ'; break;
        case 80 : t = 'ح'; break;
        case 81 : t = 'ض'; break;
        case 82 : t = 'ق'; break;
        case 83 : t = 'س'; break;
        case 84 : t = 'ف'; break;
        case 85 : t = 'ع'; break;
        case 86 : t = 'ر'; break;
        case 87 : t = 'ص'; break;
        case 88 : t = 'ط'; break;
        case 89 : t = 'غ'; break;
        case 90 : t = 'ظ'; break;
        case 91 : t = 'ج'; break;
        case 92 : t = 'پ'; break;
        case 93 : t = 'چ'; break;
        default : t = String.fromCharCode(event.keyCode);
    }
    inputVal += t;
    input.value = inputVal;
    console.log(inputVal);
}
</script>
امتحان کنید. در این روش کلید (فشرده و) رها شده توسط کاربر بررسی میشه و در صورت نیاز کاراکتر وارد شده با مقدار فارسی اون جایگزین میشه. (ترتیبش ممکن هست در هر کیبردی متفاوت باشه)

برای مقادیر keyCode که پس از وقوع رخداد به صورت آرگومان عبور داده میشه هم میتونید به جدول ascii مراجعه کنید. مقادیر متناظر با ایندکس بر مبنای 10 کدهای اسکی است.

 

william

کاربر عضو
با سلامیک سوال دیگر:

میخواهم وقتی کاربر میخواهد فرم را تکمیل نماید کیبرد را تغییر ندهد وقتی میخواهد نام خانوادگی را پر نماید فارسی تایپ نماید

وقتی میخواهد ایمیل را تایپ کند انگلیسی تایپ نماید
این کار زیاد جالب نیست و اصلاً توصیه نمیشه. اما قابل پیاده سازی هست. یه مثال میزنم که در این روش از جاوااسکریپت استفاده کردم:


کد:
<!DOCTYPE html>
<label for="input">Enter something: </label><input onkeyup="en2fa(event)" type="text" id="input" style="direction:rtl; text-align:right; font-family:Tahoma;" />
<button onclick="document.getElementById('input').value='';inputVal=''">Clear text input</button>
<script>
var input = document.getElementById('input');
var inputVal = input.value;

function en2fa(event) {
    event.preventDefault();
    input.value = '';
    var t = '';
    switch(event.keyCode) {
        case 60 : t = 'و'; break;
        case 65 : t = 'ش'; break;
        case 66 : t = 'ذ'; break;
        case 67 : t = 'ز'; break;
        case 68 : t = 'ی'; break;
        case 69 : t = 'ث'; break;
        case 70 : t = 'ب'; break;
        case 71 : t = 'ل'; break;
        case 72 : t = 'ا'; break;
        case 73 : t = 'ه'; break;
        case 74 : t = 'ت'; break;
        case 75 : t = 'ن'; break;
        case 76 : t = 'م'; break;
        case 77 : t = 'ئ'; break;
        case 78 : t = 'د'; break;
        case 79 : t = 'خ'; break;
        case 80 : t = 'ح'; break;
        case 81 : t = 'ض'; break;
        case 82 : t = 'ق'; break;
        case 83 : t = 'س'; break;
        case 84 : t = 'ف'; break;
        case 85 : t = 'ع'; break;
        case 86 : t = 'ر'; break;
        case 87 : t = 'ص'; break;
        case 88 : t = 'ط'; break;
        case 89 : t = 'غ'; break;
        case 90 : t = 'ظ'; break;
        case 91 : t = 'ج'; break;
        case 92 : t = 'پ'; break;
        case 93 : t = 'چ'; break;
        default : t = String.fromCharCode(event.keyCode);
    }
    inputVal += t;
    input.value = inputVal;
    console.log(inputVal);
}
</script>
امتحان کنید. در این روش کلید (فشرده و) رها شده توسط کاربر بررسی میشه و در صورت نیاز کاراکتر وارد شده با مقدار فارسی اون جایگزین میشه. (ترتیبش ممکن هست در هر کیبردی متفاوت باشه)

برای مقادیر keyCode که پس از وقوع رخداد به صورت آرگومان عبور داده میشه هم میتونید به جدول ascii مراجعه کنید. مقادیر متناظر با ایندکس بر مبنای 10 کدهای اسکی است.

 
بالا