簡體   English   中英

使用 Javascript 禁用粘貼操作(不包括 Jquery)

[英]Disable Paste action using Javascript (without include Jquery)

我有一個用於登錄手機號碼的文本框,我必須禁用粘貼操作

我在 ReactJs 工作,我使用的代碼是下面提到的。

<input
 type="text"
 name="userName"
 placeholder="Mobile number"
 onChange={e => this.onChangeNumber(e)}
 value={this.state.userName}                      
 maxLength="10"
 autoFocus
 autoComplete="off"
/>

我想在不使用 jquery 和任何其他包的情況下使用 JS 代碼禁用粘貼操作。 任何人都可以幫助我完成這個。

提前致謝。

如果您使用的是 reactjs,您可以直接在輸入標簽中使用 onPaste 事件,如下所示。 所以它會限制粘貼動作。

     <input
     type="text"
     name="userName"
     placeholder="Mobile number"
     onChange={e => this.onChangeNumber(e)}
     onPaste={e => {e.preventDefault()}}
     value={this.state.userName}                      
     maxLength="10"
     autoFocus
     autoComplete="off"
    />

如果要使用 js,可以在 function 中使用以下代碼。 這樣粘貼動作就會被阻止。

    onChangeNumber =()=>{
       document.getElementByName('userName').onpaste=function(e){
         e.preventDefault();
       }
     }

做到這一點的眾多方法之一是



  useEffect(()=>{
    document.getElementById('ipt').onpaste=function(e){
      e.preventDefault();
    }
  },[])


  return (
    <div className="App">

      <input
          type="text"
          name="userName"
          placeholder="Mobile number"
          id='ipt' 
          autoFocus
          autoComplete="off"
        />
    </div>
  );
}

為什么要用useEffect? 因此,當我們document.getElementById時,DOM 元素輸入已經初始化並且不會返回 NULL。

注意:通常不建議將粘貼限制在輸入字段中。 這很煩人並影響用戶體驗。

PS:我不確定為什么 refs 不能與 onpaste 一起使用。 也許這將是一種更好的REACT方式。

<input
 type="text"
 name="userName"
 placeholder="Mobile number"
 onChange={e => this.onChangeNumber(e)}
 onPaste={e => {e.preventDefault()}}
 value={this.state.userName}                      
 maxLength="10"
 autoFocus
 autoComplete="off"
/>

簡單地阻止 onPaste 的默認操作是必要的。

<input type="text" class="word"> //html code
let box = document.querySelector(".word");// javacript method
//Disable Paste Event
box.onpaste = function () {
    return false;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM