[英]I'm trying to prevent default behavior when I hit enter but it doesn't work
我有一個輸入文本來更新數據庫中的一個字段。 當我在鍵盤上按下 Enter 鍵時,我調用了一個執行更新的 php 頁面。 不幸的是,對於公司政策,我必須使用 IE。 有人告訴我,在 IE 中按回車鍵的默認行為是提交表單。
現在,這個輸入文本不是任何表單的一部分,所以我不知道可能提交什么。
這是它背后的javascript。 我做錯了什么?
如您所見,在我設置要發送的參數后,我會使用該參數提醒字符串,當我這樣做時,我剛剛更改的值將采用舊值。
function submitData(id, tab, codProd, riga, R004) {
document.querySelector("#" + id).onkeydown = function(event) {
if(event.key == "Enter") {
event.preventDefault ? event.preventDefault() : (event.returnValue = false);
var esito = confirm("Sei sicuro di voler modificare il dato?");
if(esito) {
if('ActiveXObject' in window){
infoXmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
}else{
infoXmlHttp = new XMLHttpRequest();
}
if(infoXmlHttp) {
try{
infoXmlHttp.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
if(this.responseText == 1) {
document.getElementById(id).readOnly = true;
window.location.reload();
}
else {
document.getElementById(id).value = riga;
document.getElementById(id).readOnly = true;
window.location.reload();
}
}
};
infoXmlHttp.open("POST", serverAddress, false);
infoXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var val = $('#'+id).val();
var param = "codProd=" + codProd + "&tab=" + tab + "&key=" + id + "&value=" + val + "&R004=" + R004;
alert(param);
infoXmlHttp.send(param);
} catch(e) {
var log = "Error connecting to the server - submitData";
alert(log);
}
}
}
else {
document.getElementById(id).value = riga;
document.getElementById(id).readOnly = true;
window.location.reload();
}
}
else {
return;
}
}
};
您似乎在使用 jQuery,所以這里是我傾向於通過按 Enter 鍵來停止提交表單的方法。
它應該放在文檔就緒函數中
/* Prevent form from being submitted if a user presses enter whilst focused on an input field */
var inputs = $('input, textarea, select').not(':input[type=button], :input[type=submit], :input[type=reset]');
$(inputs).on('keypress', function(e) {
return e.which !== 13;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.