cari

Rumah  >  Soal Jawab  >  teks badan

Menghalang aksara tidak sah daripada dimasukkan dalam medan: Panduan komprehensif

<p><kod>Onkeydown</code>, saya menjalankan JavaScript berikut: </p> <pre class="brush:php;toolbar:false;">fungsikan ThisOnKeyDown(el) { if (el.title == 'textonly') { !(/^[A-Za-zÑñ-s]*$/i).test(el.value) ? ''): null; } if (el.title == 'numbersonly') { !(/^[0-9]*$/i).test(el.value) ? el.value = el.value.replace(/[^0-9]/ig, '') : null; } if (el.title == 'textandnumbers') { !(/^[A-Za-zÑñ0-9-s]*$/i).test(el.value) ? ]/ig, ''): null; } }</pre> <p>Salah satu daripada tiga atribut tajuk ini diberikan kepada setiap medan input pada halaman. Kod ini berfungsi selagi aksara yang tidak sah dialih keluar dengan betul, tetapi tidak sehingga aksara seterusnya dimasukkan. Saya ingin mencari cara untuk menolak input yang tidak sah. terima kasih atas bantuan anda! </p> <p><strong>Edit</strong>: Saya mencipta acara secara global. Inilah yang saya lakukan: </p> <pre class="brush:php;toolbar:false;">function Globalization() { var inputs = document.getElementsByTagName('input'); untuk (i = 0; i < inputs.length; i++) { inputs[i].onfocus = createEventHandler( ThisOnFocus, input[i]); inputs[i].onblur = createEventHandler( ThisOnBlur, input[i]); inputs[i].onkeydown = createEventHandler( ThisOnKeyDown, input[i]); inputs[i].onkeyup = createEventHandler( ThisOnKeyUp, input[i]); } }</pre> <p><kod>globalisasi()</code>run<kod>body.onload</code></p> <p>Jadi medan input biasa mempunyai HTML dan tiada panggilan fungsi seperti ini: </p> <pre class="brush:php;toolbar:false;"><input id="AppFirstName" style="width: 150px;" type="text" maxlength="30" title="textonly"/> ;</pra> <p><br /></p>
P粉124890778P粉124890778464 hari yang lalu520

membalas semua(2)saya akan balas

  • P粉034571623

    P粉0345716232023-08-28 14:43:57

    Kod di atas menggambarkan ini - hanya nombor dibenarkan. Anda boleh mengubah suainya dengan menambah pengecualian, contohnya BACKSPACE seperti ini

    
        
            
            
            sssccc
            
        
            
        
    
    

    balas
    0
  • P粉807471604

    P粉8074716042023-08-28 10:06:49

    Untuk mengelakkannya daripada ditetapkan di tempat pertama, anda boleh mengembalikan palsu pada pengendali acara keydown, sekali gus menghalang acara daripada disebarkan lebih jauh.

    Saya menulis contoh di bawah menggunakan jQuery, tetapi anda boleh menggunakan fungsi yang sama dengan pengikatan tradisional.

    Walaupun pengesahan di bahagian pelayan juga penting, pengesahan pihak pelanggan juga penting untuk kemesraan pengguna.

    $("input.number-only").bind({
        keydown: function(e) {
            if (e.shiftKey === true ) {
                if (e.which == 9) {
                    return true;
                }
                return false;
            }
            if (e.which > 57) {
                return false;
            }
            if (e.which==32) {
                return false;
            }
            return true;
        }
    });

    balas
    0
  • Batalbalas