我试图消除触发表单提交的“输入事件”默认值。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新手,谁能指出为什么会发生这种情况?提前致谢!