Home >Web Front-end >JS Tutorial >JavaScript prevents the browser back event from clearing the form by mistake_javascript skills

JavaScript prevents the browser back event from clearing the form by mistake_javascript skills

WBOY
WBOYOriginal
2016-05-16 17:12:571412browse

Because most of the customers are newbies who don't understand computers. Therefore, there are many misoperations. Sometimes the text box is not selected, and then after accidentally pressing backspace, the form that has just been filled out with so much hard work will go back to nothing. I checked a lot of information online and then put it together. Share it with everyone. I also hope Sister Yogurt will come and read my first technical blog. Haha (don’t mind me mentioning you.). No more nonsense. Up source code.

Copy code The code is as follows:

$(function(){
//Processing Keyboard events prohibit the back key (Backspace) password or single-line or multi-line text boxes.
function banBackSpace(e){
var ev = e || window.event;//Get the event object
var obj = ev.target || ev.srcElement;//Get the event source

var t = obj.type || obj.getAttribute('type');//Get the event source type

/ /Get the event type used as the judgment condition
var vReadOnly = obj.getAttribute('readonly');
var vEnabled = obj.getAttribute('enabled');
//Handle the null value situation
vReadOnly = (vReadOnly == null) ? false : true;
vEnabled = (vEnabled == null) ? true : vEnabled;

//When the Backspace key is pressed, the event source type is password or single line , multi-line text,
//If the readonly attribute is true or the enabled attribute is false, the backspace key is invalid
var flag1=(ev.keyCode == 8 && (t=="password" | | t=="text" || t=="textarea")
&& (vReadOnly || vEnabled!=true))?true:false;

//When the Backspace key is pressed, the event If the source type is not password or single or multi-line text, the backspace key will be disabled
var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea ")
?true:false;

//Judge
if(flag2){
return false;
}
if(flag1){
return false ;
}
}

//Disable the back key for Firefox and Opera
document.onkeypress=banBackSpace;
//Disable the back key for IE and Chrome
document.onkeydown=banBackSpace;
window.history.forward(1);//Block the back button that comes with the browser
})

Things to note are :

This code must be placed in the initialization method. Then use document.onkeypress=banBackSpace to call the method you wrote.
Copy code The code is as follows:

vReadOnly = (vReadOnly == null) ? false : true ;For this code, it turns out that the value after the colon is vReadOnly. Later I found that in my project it returned empty, not null, so I changed it to true.

Follow the above method to prevent the browser backspace event by pressing backspace when it is not text, password, or textare, but it will not prevent backspace when the text box has a value. event. This is my first blog, I hope you will support it.
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn