フォームで送信をトリガーする「入力イベント」のデフォルト値を削除しようとしています。type=text
私は次のようにします:
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;
残りのコードは、パラメーターを指定して、またはパラメーターなしで関数を呼び出すだけです。問題は、呼び出された関数内に、アラートをトリガーする条件があることです。これが取り引きです:
- アラートがトリガーされない場合、
[enter]
フォームの送信はトリガーされません - アラートがトリガーされた場合、フォーム送信がトリガーされます
every で呼び出される関数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を初めて使用しますが、なぜこれが起こっているのか誰か指摘できますか? 前もって感謝します!