Javascript 从一系列输入字段中获取最大值
我有一系列的输入字段。我不知道有多少,所以我需要从类中获取值。在这种情况下,类是Javascript 从一系列输入字段中获取最大值,javascript,jquery,max,Javascript,Jquery,Max,我有一系列的输入字段。我不知道有多少,所以我需要从类中获取值。在这种情况下,类是.total bestresult是一个文本字段,它从mysql中获取其值,但我希望手动或通过其他文本字段中的最高值来更改它 这是代码。显然不起作用,但也许你知道我想做什么 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> &
.total
bestresult
是一个文本字段,它从mysql
中获取其值,但我希望手动或通过其他文本字段中的最高值来更改它
这是代码。显然不起作用,但也许你知道我想做什么
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$('input.total').change(function()
{
var max = $('.total').max();
$('#bestresult').attr("value", max);
});
</script>
<body>
<form>
<input type="text" name="bestresult" id="bestresult" class="total" value=""><br>
<input type="text" name="resultat[100][total]" class="total" value=""><br>
<input type="text" name="resultat[121][total]" class="total" value=""><br>
<input type="text" name="resultat[130][total]" class="total" value="">
</form>
</body>
</html>
无标题文件
$('input.total').change(函数()
{
var max=$('.total').max();
$('bestresult').attr(“值”,最大值);
});
解决方案非常简单。试试这个:
$('input.total').change(function()
{
var max = 0;
$('.total').each(function(){
if(parseFloat($(this).val()) > max ) {
max = parseFloat($(this).val());
}
});
$('#bestresult').val(max);
});
但如果您有多个文本框,则应该跟踪最大值,并在每次触发更改事件时更新,以获得更好的性能
var max = 0;
// get the max for the first time
$(document).ready(function () {
$('.total').each(function () {
if (parseFloat($(this).val()) > max) {
max = parseFloat($(this).val());
}
});
$('#bestresult').val(max);
});
$('input.total').change(function () {
if (parseFloat($(this).val()) > max) {
max = parseFloat($(this).val());
}
$('#bestresult').val(max);
});
首先,应该将脚本放在正文的末尾,以便在绑定更改事件时定义元素 然后,您最好过滤输入,以排除包含最大值的输入。您可以使用此选择器:
input.total[id!=bestresult]
最好还绑定keyup事件,这样用户就可以在不点击外部的情况下更新max
因此,您可以使用以下代码:
$('input.total[id!=bestresult]').on('blur change keyup', function(){
$('#bestresult').attr("value", Math.max.apply(null, $('.total[id!=bestresult]').map(function(){
return parseFloat(this.value)}).slice().filter(function(i, v){return v==v})
));
});
我不能排除最佳结果。可以手动更改。所以bestresult可以更高,最高的输入字段,如果有意义的话:-)好的,有意义。在这种情况下,您可以使用此代码并删除id上的过滤器。工作正常。非常感谢你。两天的挫折结束了。我的代码有点紧凑。如果有一点不清楚,请毫不犹豫地问一个准确度。“首先,你应该把你的脚本放在身体的末端”。圣人保护我们,你怎么看
$(function(){…})代码>用于。