Rumah  >  Soal Jawab  >  teks badan

Cara menggunakan kaedah .preventDefault() untuk menghalang peristiwa klik butang

<p>Memandangkan tutorial ini<a href="https://vuejs.org/guide/essentials/event-handling.html#accessing-event-argument-in-inline-handlers">https:// vuejs. org/guide/essentials/event-handling.html#accessing-event-argument-in-in-line-handlers</a></p> <p>Dalam kod yang ditunjukkan di bawah, saya memanggil <code>.preventDefault</code> Atau dengan kata lain, saya menjangkakan bahawa sebaik sahaja <code>.preventDefault</code> dipanggil, butang itu tidak lagi boleh diklik kerana dari pemahaman saya, <code>.preventDefault</code> . </p> <p>Tetapi apa yang berlaku ialah butang itu masih boleh diklik, seolah-olah <kod>.preventDefault</code> </p> <p>Sila beritahu saya cara menggunakan <code>.preventDefault</code> untuk melumpuhkan klik butang. </p> <p><strong>Kod</strong>: </p> <pre class="brush:php;toolbar:false;"><template> <div> <butang v-on:click="warning('msg',$event)">warning</button> </div> </template> <skrip> import {ref} daripada 'vue' eksport lalai { nama: 'App', komponen: { Hai dunia } } </skrip> <persediaan skrip> const warn = (msg,DOMEvent) => console.log("amaran:",msg," acara:",DOMEvent); DOMEvent.preventDefault() } </script></pre></p>
P粉254077747P粉254077747413 hari yang lalu524

membalas semua(2)saya akan balas

  • P粉002023326

    P粉0020233262023-09-02 19:15:13

    preventDefault berguna dalam situasi berikut:

    • Halang penyerahan borang apabila mengklik butang "Serah"
    • Halang pautan daripada melompat ke URL apabila anda mengklik padanya

    Untuk melumpuhkan butang dalam kes anda, anda boleh menggunakan:

    const warn = (msg,DOMEvent) => {
      DOMEvent.srcElement.disabled = true;
    }

    balas
    0
  • P粉726234648

    P粉7262346482023-09-02 17:59:20

    preventDefault()不会禁用按钮,但会阻止其默认操作,主要在SubmitAnda akan perasan semasa operasi.
    Untuk melumpuhkan butang pada klik anda perlu melakukan sesuatu seperti ini:

    <template>
      <div>
          <button :disabled="isDisabled" v-on:click="warn('msg',$event)">warn</button>     
    </div>
    </template>
    
    <script> 
        import {ref} from 'vue' 
    
        export default {
          name: 'App',
          components: {
            HelloWorld
          }
    }
    </script>
     
    <script setup> 
        const warn = (msg,DOMEvent) => {
          console.log("warn:",msg," event:",DOMEvent);
          //DOMEvent.preventDefault() //uncomment if needed
          this.isDisabled = true;
        }
    </script>

    balas
    0
  • Batalbalas