我有一个非常简单的HTML网页表单分钟VAL ...检查,如果输入的文本字段包含在提交
这是我在数据和序列化到JSON (并最终发送别的地方。但是,现在我正在使用console.log
进行测试)。
当用户填写表格,然后然后点击submit
;我想简单地检查我的输入文本字段的value
,并确保用户在-至少进入了一些更高然后0
,但不0
。
<div>
<label>Age
<input type="text" name="age">
</label>
</div>
谨以此验证,以之前运行,我的序列化功能,它下面的闪光。本质上,我想在发送数据之前检查或验证它。如果用户输入0
,我不想发送。
以下是我的完整JavaScript。 (我仍然无法获得上述的验证功能)。
(function ($) {
$.fn.serializeFormJSON = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
})(jQuery);
$('form').submit(function (e) {
function validateForm(){ // would like to check before below fires for serialize
var form = document.getElementById("form"), inputs = form.getElementsByTagName("input"),
input = null, flag = true;
for(var i = 0, len = inputs.length; i < len; i++) {
input = inputs[i];
// if the value is not a valid number or it's less than or equal 0
if(isNaN(input.value) || +input.value < 0) {
flag = false;
input.focus();
console.log("error!");
// break;
}
}
return(flag);
}
e.preventDefault();
var data = $(this).serializeFormJSON();
console.log(data);
});
你永远不会调用'validateForm()'。另外,'+ input.value <0'应该使用'<= 0'。 – nnnnnn
你可以包含更多的HTML吗?这段代码取决于存在一个id为“form”的表单,这是我们看不到的。还有其他问题,但我们从头开始。 –