gpt4 book ai didi

javascript - 验证此输入的最简单方法?

转载 作者:太空宇宙 更新时间:2023-11-04 16:05:03 24 4
gpt4 key购买 nike

对于尝试验证某些文本字段输入的 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()">

关于javascript - 验证此输入的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41946034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com