对于JavaScript而言,尝试验证某些文本字段输入仍然是相当陌生的,我一直在尝试逐步进行操作,但是发生了很多事情,我一直在与自己矛盾。我在下面解释了所需的验证。
var a = document.getElementById("val1").value;
var b = document.getElementById("val2").value;
val1和val2指的是两个文本输入字段,a和b都必须为正整数,但是只必须填充一个输入字段,在这种情况下,另一个变量应被赋予值0,则变量a应该较小两个值之和b较大,以便我运行以下循环。
for (var i = a; i < (Number(b) + Number(1)); i++) {
tableRow = resultsRows.appendChild(document.createElement("tr"));
if(i%2==0) {
tableRow.setAttribute("class", "even");
}
else {
tableRow.setAttribute("class", "odd");
}
var tableData = tableRow.appendChild(document.createElement("td"));
tableData.appendChild(document.createTextNode(i));
tableData = tableRow.appendChild(document.createElement("td"));
tableData.appendChild(document.createTextNode(converter(i)));
}
我试图编写的函数来验证这一点。不确定如何接受空白输入...
function validateInput(x) {
if (isNaN(x) || x < 0) {
alert("Input incorrect; fields must be blank or contain positive integers");
return false;
}
else { return true
}
}
最佳答案
请尝试随附的代码段。
它旨在结合以下假设:
只能输入一个数字(即两个字段不能同时留为空白,也不能同时包含两个值)并且必须为正数
没有非数字输入
function customValidation(){
var a = document.getElementById("val1").value;
var b = document.getElementById("val2").value;
if((a == "" && b == "")
|| (a > "" && !isNumber(a)) || (b > "" && !isNumber(b))
|| (a < 0 || b < 0)
|| (a == 0 && b == 0)
|| (a > 0 && b > 0)){
alert("Input incorrect; "
+ "only one of the fields must contain a value "
+ "and that should be a positive number");
return false;
}
if(a > 0){
n = a;
}
else{
n = b;
}
for(i=0; i < (Number(n) + Number(1)); i++){
alert("Executing: "+i);
//
//
}
}
//-----------------------------------------------------
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
//-----------------------------------------------------
Val1: <input id="val1" type="text"><br>
Val2: <input id="val2" type="text"><br>
<input type="button" value="Test" onClick="customValidation()">