我想消除「輸入事件」的默認值上type=text
,這觸發器提交表單。我用下面這樣做:alert()觸發器表單提交
var onEnter = function(values){
$("#"+values['id']).keydown(function(e){
if (e.which == 13) {
event.preventDefault();
var function_to_call = window[values['function']];
if(typeof function_to_call === 'function'){
if(values['parameters']!= null){
parameters = values['parameters'];
var args;
if(typeof parameters === 'string')
args = parameters.split(',');
else
args = new Array(parameters);
function_to_call.apply(window, args);
}
else function_to_call();
}
return false;
}
});
}
,對於帶走默認事件重要的代碼是
event.preventDefault();
return false;
的代碼的其餘部分只是調用帶參數或不帶參數的函數。事情是,在所調用的函數內部,有一個觸發警報的條件。 Here's交易:
- 如果警報沒有被觸發,
[enter]
不會觸發表單提交 - 如果警報被觸發,表單提交觸發
呼籲功能每type=text
是相同的,這裏是警戒條件:
......
if(!regex_match(item)){
alert("Solo son posibles los siguientes caracteres: '.' ',' 'a-z' 'a-Z' '0-9' y ' '");
return;
}
.....
var regex_match = function(text){
regex = /^[_., 0-9a-záéíóúñ]+$/i;
return regex.test(text);
}
事情嘗試:
- 「
return false;
」alert(...)
後;
我是JavaScript新手,有誰能指出爲什麼會發生這種情況?提前致謝!
你說你自己'返回false'可以阻止表單提交,但是你沒有這個提示。 ('event.preventDefault()'應該足夠了,但是從這個問題來看,它還不清楚它是否被應用。) – JJJ
請從頭開始,並解釋整個事情的目的是什麼。如果您使用表單來填充Ajax內容,請移除提交按鈕並在提交事件中返回false。如果沒有,請告訴我們更多 – mplungjan
您還想將'event.preventDefault()'更改爲'e.preventDefault()' – mplungjan