0

我正在使用单例模式来创建表单处理脚本......

我不想发布所有代码,但第一种方法使用 preventDefault:

//public methods
    handleSubmit: function (e) {

        //prevent the default submission process
        e.preventDefault();

},

preventDafault 做了它应该做的就是劫持表单以停止服务器端处理。

然后我创建了验证规则......如果所有验证规则都通过了,它会用这个方法结束:

validData: function (error) {
        if (error.length === 0) {
            return true;
        } else {
            // If there are errors in the form then run alert message
            alert(error);
        }

    },

也就是说,如果没有错误,那么服务器端脚本会处理表单并将项目添加到数据库中(我没有使用 AJAX,因为我有图像问题)

但是, return true 在这里不起作用......我不知道为什么,但我敢肯定有一个非常简单的原因

4

1 回答 1

0

你能跳过 preventDefault 函数而只做这样的事情吗?

var hasErrors = false;
    if(myLogicHasErrors){
        hasErrors = true;
    }
    if(hasErrors) return false;

除非您的验证检查通过,否则它只会阻止表单提交而不会阻止默认设置。

于 2011-11-12T17:34:44.363 回答