我有javascript来检查HTML表单的数值和空字符串。如果输入任何其他内容(符号,字母等),则表单不应提交,并且应弹出错误消息。到目前为止,表格无论如何都会提交。我正在尝试设置它,以便如果3个字段中的任何一个具有不正确的值,则它不会提交。示例:输入“5”,然后输入“a”,然后输入“5”(或类似输入的任意组合)不起作用。而“5”则“”然后“5”或“”然后“”然后“”或“5”“5”“5”......等应该。
JAVASCRIPT FUNCTION
function validateOrder()
{
var myOrderRegex = /^(\s*|\d+)$/
if(myOrderRegex.test(document.getElementById("appleorderquantity").value))
{
return true;
}
else
{
alert("Apple quantity invalid: must be numeric");
return false;
}
if(myOrderRegex.test(document.getElementById("grapeorderquantity").value))
{
return true;
}
else
{
alert("Apple quantity invalid: must be numeric");
return false;
}
if(myOrderRegex.test(document.getElementById("strbryorderquantity").value))
{
return true;
}
else
{
alert("Apple quantity invalid: must be numeric");
return false;
}
}
HTML FOR ENTRY TEXTBOXES
<input type="text" name="Apple_Quantity" id="appleorderquantity" size="25" />
<input type="text" name="Grape_Quantity" id="grapeorderquantity" size="25" />
<input type="text" name="Strawberry_Quantity" id="strbryorderquantity" size="25" />
用于提交按钮的HTML
<input type="submit" value="Submit" onClick="return validateOrder()" />
答案 0 :(得分:1)
在函数结束之前不要返回true - 检查不应提交的任何条件,如果满足任何条件,则返回false,否则,在检查完所有后,返回true
另外,你最好不要做
<form onsubmit="return validateOrder()">
...
</form>
如果validateOrder()
返回false,则表单不会提交。
function validateOrder()
{
var myOrderRegex = /^(\s*|\d+)$/
if(!myOrderRegex.test(document.getElementById("appleorderquantity").value))
alert("Apple quantity invalid: must be numeric");
return false;
}
if(!myOrderRegex.test(document.getElementById("grapeorderquantity").value))
alert("Apple quantity invalid: must be numeric");
return false;
}
if(!myOrderRegex.test(document.getElementById("strbryorderquantity").value))
alert("Apple quantity invalid: must be numeric");
return false;
}
return true;
}