Javascript 检查输入文本字段是否包含提交时的最小值
我有一个非常简单的HTML网页表单 我获取数据并序列化为JSON(最终将发送到其他地方。但是,现在我使用Javascript 检查输入文本字段是否包含提交时的最小值,javascript,jquery,Javascript,Jquery,我有一个非常简单的HTML网页表单 我获取数据并序列化为JSON(最终将发送到其他地方。但是,现在我使用console.log进行测试) 当用户填写表单,然后单击submit;我只想检查输入文本字段的值,并确保用户输入的数字至少高于0,而不是0 <div> <label>Age <input type="text" name="age"> </label>
console.log
进行测试)
当用户填写表单,然后单击submit
;我只想检查输入文本字段的值
,并确保用户输入的数字至少高于0
,而不是0
<div>
<label>Age
<input type="text" name="age">
</label>
</div>
简单验证数字输入。试试这个
$(“#提交”)。在(“单击”,函数(){
inputValue=$(“输入[name='age']”)val();
var num=parseInt(inputValue);
如果(isNaN(num)| num要实现这一点,我(或多或少)通常会这样做:
HTML
<form action="(action url)" id="form" method="post" onsubmit="return validateForm()">
//form contents
</form>
//表格内容
JS
function validateForm() { // would like to check before below fires for serialize
//var form = document.getElementById("form"), inputs = form.getElementsByTagName("input"),
//If you use jQuery, it more preferred to write like this:
var form = $('#form'), inputs = form.find('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!");
}
//do the break
if (!flag) break;
}
if (flag) {
var data = $(this).serializeFormJSON();
console.log(data);
}
return flag;
}
函数validateForm(){//要在下面激发序列化之前进行检查
//var form=document.getElementById(“表单”),inputs=form.getElementsByTagName(“输入”),
//如果使用jQuery,则更倾向于这样编写:
var form=$('#form'),inputs=form.find('input'),input=null,flag=true;
对于(变量i=0,len=inputs.length;i
您从未调用过validateForm()
。另外,+input.value<0
应该使用您可以包含更多HTML吗?此代码取决于是否存在id为“form”的表单,我们看不到。还有其他问题,但让我们从头开始。因此,这解决了大约一半的问题。谢谢!但是,表单仍然以任何一种方式提交;如果表单被视为无效,我不希望允许提交…使用return false,或preventDefault在输入编号无效时忽略提交操作。另一种方法可以替换按钮submit正常按钮并在表单有效时提交表单。
function validateForm() { // would like to check before below fires for serialize
//var form = document.getElementById("form"), inputs = form.getElementsByTagName("input"),
//If you use jQuery, it more preferred to write like this:
var form = $('#form'), inputs = form.find('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!");
}
//do the break
if (!flag) break;
}
if (flag) {
var data = $(this).serializeFormJSON();
console.log(data);
}
return flag;
}