Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menghalang Penyerahan Borang Web pada ENTER Keypress?

Bagaimana untuk Menghalang Penyerahan Borang Web pada ENTER Keypress?

Patricia Arquette
Patricia Arquetteasal
2024-11-17 21:02:02401semak imbas

How to Prevent Web Form Submission on ENTER Keypress?

Menghalang Penyerahan Borang Web pada Tekan Kekunci ENTER

Apabila mereka bentuk aplikasi berasaskan web, selalunya wajar untuk menghalang kekunci ENTER daripada menyerahkan borang . Ini boleh dicapai menggunakan JavaScript.

Penyelesaian:

Semakan 2012 ( Pengendali Sebaris)

Tentukan semak fungsiMasukkan ke kendalikan tekan kekunci ENTER:

function checkEnter(e){
 e = e || event;
 var txtArea = /textarea/i.test((e.target || e.srcElement).tagName);
 return txtArea || (e.keyCode || e.which || e.charCode || 0) !== 13;
}

Tugaskan pengendali ini kepada borang:

document.querySelector('form').onkeypress = checkEnter;

Ini menghalang penyerahan pada ENTER untuk semua elemen kecuali kawasan teks.

Semakan 2024 ( Perwakilan Acara)

Laksanakan pendekatan yang lebih moden menggunakan perwakilan acara:

document.addEventListener(`keypress`, handle);

function handle(evt) {
  const form = evt.target.closest(`#testForm`);
  if (form) {
    if (evt.target.dataset.enterForSubmit) {
      if (evt.key === `Enter`) {
        evt.preventDefault();
        return logClear(`won't submit "${evt.target.value}"`);
      }
      return true;
    }
  }
}

function logClear(...txt) {
  console.clear();
  console.log(...txt);
}

Tambahkan atribut data-enter-for-submit pada elemen yang ingin anda serahkan pada ENTER :

<input data-enter-for-submit="1" 
    placeholder="enter text, try using enter to submit">

Atas ialah kandungan terperinci Bagaimana untuk Menghalang Penyerahan Borang Web pada ENTER Keypress?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn