这是在不使用“Fancy Javascript”的情况下验证表单的最佳方法

时间:2012-07-16 16:16:53

标签: javascript backbone.js validation

我使用backbone.syphone来序列化数据并将其保存到服务器。

我想知道在不使用“Fancy Javascript”的情况下,将它们发送到服务器之前处理错误或验证日期的最佳方法是什么。

P.S。

我只需检查所有字段是否为空。

这是我的代码:

var myView = Backbone.View.extend({

    submitData: function (event) {
        event.preventDefault();
        var data = backboneSyphon.serialize(this);
        myModel.save(data, {
            success: function () {
            },
            error: function () {
            }
        }
    }

3 个答案:

答案 0 :(得分:1)

除非您想进行纯服务器端验证,否则 使用某些 Javascript进行验证;我并不完全确定你的意思是什么"幻想"。由于你正在使用Backbone,这很可能意味着你正在使用jQuery(好吧,或者Zepto),所以我认为jQuery在" fanciness"边界; - )

使用jQuery,我能想到的最简单的JS就像:

var failed;
$('#yourForm :input').each(function(input) {
    if (!$(input).val()) {
        alert("You need to fill in " + input.name);
        failed = true;
        return false;
    }
}
// Do whatever else you want to do if (failed)

答案 1 :(得分:1)

如果你不想使用花哨的javascript代码,
在你的情况下,因为你使用Backbone,
我建议你使用backbone.validation。

以下是此库的链接:backbone.validation

答案 2 :(得分:0)

这是一个“非奇特的javascript”:)

<!DOCTYPE html>
<title></title>
<form id="form" method="post" action="someform.php">
<input id="name" name="Name" value="Name*">
<input type="submit" value="">
</form>

<script>
window.onload = function () {
var yourForm = document.getElementById('form'),
    yourInput = document.getElementById('name');

yourForm.onsubmit = function () {
    if(yourInput.value == yourInput.defaultValue || yourInput.value == '') {
        alert('You must write something');
        return false;
    }
}
}
</script>