gpt4 book ai didi

javascript - 如果输入字段为空且有值,则不执行任何操作,检查它是否为数字,如果不是则显示警报

转载 作者:行者123 更新时间:2023-11-28 01:07:01 26 4
gpt4 key购买 nike

我正在尝试制作一个表单,该表单可以在模糊时自动对输入字段求和,并在非事件的“总计:”字段中显示总和。如果用户将焦点放在输入中然后将焦点移开而不输入任何内容,并且如果用户确实输入了某些内容,我想将字段限制为仅数字,我不想运行任何内容。如果有更好的方法,请告诉我。这是我当前方法的一个示例:

HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test Calc</title>
<script src="javascript.js"></script>
</head>
<body>
<h1>Sales By Month</h1>
<form method="get">
<label for="january">January:</label>
<input type="text" id="january" class="amount" onblur="isNum(); calculateSum();">
<label for="february">February:</label>
<input type="text" id="february" class="amount" onblur="isNum(); calculateSum();">

<label for="total">Total:</label>
<input type="text" id="total" disabled>
</form>
</body>
</html>

JavaScript

function calculateSum() {

var elems = document.getElementsByClassName('amount');

var myLength = elems.length;
sum = 0;

for (var i = 0; i < myLength; ++i) {
sum += elems[i].value *1;
}

document.getElementById('total').value = sum;

}

function isNum() {
var amounts = parseInt(document.getElementsByClassName('amount').value);

if (isNaN(amounts) == true && amounts != '') {
alert("Please enter a numeric value");
}

}

计算功能当前可以运行,但每次我从字段移开时,无论内容如何,​​都会弹出“请输入数值”警报。

最佳答案

首先,您需要测试失去焦点的元素的值,这意味着您应该像这样在参数中传递它

onblur="isNum(this); calculateSum();"

然后在 javascript 中的 isNum 函数中删除 document.getElementsByClassName 并使用参数代替...并且不要测试 amounts != '' 因为当您执行此操作时,它永远不会等于空字符串 amounts = parseInt(elem.value); 您必须在 elem.value 上进行测试

function isNum(elem) 
{
var amounts = parseInt(elem.value);

if (isNaN(amounts) == true && elem.value != '') {
alert("Please enter a numeric value");
}

这是一个 jsFiddle

关于javascript - 如果输入字段为空且有值,则不执行任何操作,检查它是否为数字,如果不是则显示警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24943078/

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