搜尋

首頁  >  問答  >  主體

如何使用.preventDefault()方法來阻止按鈕點擊事件

<p>給定這個教學<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-inline-handlers</a></p> <p>如下所示的程式碼中,我呼叫 <code>.preventDefault</code> 來期望取消 <code>click</code> 事件的正常行為。或者換句話說,我期望一旦呼叫了<code>.preventDefault</code>,按鈕將不再可點擊,因為根據我的理解,<code>.preventDefault</code> 將停用按鈕的正常功能。 </p> <p>但實際情況是,按鈕還是可以點擊,好像 <code>.preventDefault</code> 沒有任何效果。 </p> <p>請告訴我如何正確使用 <code>.preventDefault</code> 來停用按鈕點擊。 </p> <p><strong>代碼</strong>:</p> <pre class="brush:php;toolbar:false;"><template> <div> <button v-on:click="warn('msg',$event)">warn</button> </div> </template> <script> import {ref} 從 'vue' export default { name: 'App', components: { HelloWorld } } </script> <script setup> const warn = (msg,DOMEvent) => { console.log("warn:",msg," event:",DOMEvent); DOMEvent.preventDefault() } </script></pre></p>
P粉254077747P粉254077747456 天前572

全部回覆(2)我來回復

  • P粉002023326

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

    preventDefault在以下情況下非常有用:

    • 點擊「提交」按鈕時,阻止表單的提交
    • 點擊連結時,阻止連結跳到URL

    #在您的情況下停用按鈕,您可以使用:

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

    回覆
    0
  • P粉726234648

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

    preventDefault()不會停用按鈕,但會阻止其預設操作,主要在Submit操作中會注意到。
    要在點擊時停用按鈕,你需要像這樣做:

    <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>

    回覆
    0
  • 取消回覆