javascript - 是否可以使用 jQuery 获取最小值和最大值并将其呈现在另一个输入字段中?

标签 javascript jquery greasemonkey

我们开始了:

我正在编写(实际上感觉更像是尝试和询问)一个使用 JS 并包括(也使用)jQuery 库的 GreaseMonkey 脚本。

我创建了另一个包含一些输入字段的表格。示例(仅输入字段):


  + "   < input type=\" text\"  id=\" field_1\"  name=\" min_field_1\" value=\"\" > " 
  + "   < input type=\" text\"  id=\" field_2\"  name=\" min_field_2\" value=\"\" > " 
  + "   < input type=\" text\"  id=\" field_3\"  name=\" min_field_3\" value=\"\" > " 
  + "   < input type=\" text\"  id=\" field_4\"  name=\" min_field_4\" value=\"\" > "<p></p>

<p>//the results should be rendered in another input-field in this case with id=field_result_min
  + "   < input type=\" text\" id=\" field_result_min\"  name=\"min_field_result\" > " 
  + "   < input type=\" text\"  id=\" field_result_max\"  name=\"max_field_result\" > " 
  + "   < input type=\" text\"  id=\" field_result_avg\"  name=\"avg_field_result\" > " 
</p>

我的目标是获取字段的最小值、最大值和平均值,并将结果呈现在另一个输入字段中。

//returns the min value of all input-fields starting with a name attribute of min
$("input[name^='min']")min.()

这行不通,因为 jQuery 库没有像 JS 那样的任何 min() 或 max()。

所以我尝试了某事。喜欢


<input type="button" value="=" onclick="window.document.getElementById('field_result_min') = Math.min(window.document.getElementById('field_1').value,window.document.getElementById('field_2').value,window.document.getElementById('field_3').value,window.document.getElementById('field_4').value)" > 

嗯...我又一次陷入困境和困惑 - 即使在我解释的时候也是如此。

问题:如何在一个输入字段中渲染多个输入字段的最小值和最大值?

任何帮助将不胜感激。 失败

更新 我就是这样解决的。好吧,它只是 avg 和 max(min 是可导出的)。任何更改或错误都应该来自复制粘贴和更改某事。在 stackoverflow 的代码中。

function calculateAvg() {<p></p>

<p>var fields = [1*window.document.getElementById('field_1').value,1*window.document.getElementById('field2').value,1*window.document.getElementById('field').value,1*window.document.getElementById('field4').value,1*window.document.getElementById('field5').value,1*window.document.getElementById('field6').value];</p>

<p>var total = 0;
var anzahl = 0;
    for(i=0;i 0) {
    total = total+fields[i];
    anzahl=anzahl+1;}
}
var durchschnitt = (total/anzahl);
window.document.getElementById('fieldavg').value = durchschnitt;
}
 $("#fieldavg").blur  (calculateAvg);</p>

<p>function calculateMax() {</p>

<p>var fields = [1*window.document.getElementById('field_1').value,1*window.document.getElementById('field2').value,1*window.document.getElementById('field').value,1*window.document.getElementById('field4').value,1*window.document.getElementById('field5').value,1*window.document.getElementById('field6').value];</p>

<p>var max = 0;
for(i=0; i<fields.length;i++) {
      if(fields[i] > 0) {
if(max<fields[i]){
max=fields[i];
}
}
}
window.document.getElementById('field8').value = max;</p>

<p>}</p>

<p>$("'field_8").blur  (calculateMax);</p>

<p></p>

那么,谢谢你的帮助。我真的需要它。 失败

最佳答案

使用其他库是一种方法,但手动解决小问题 [使用原始 javascript] 会更好。 更改下面代码中的选择器,并检查。

$(function(){
    sel = $('.field')
    min_field = $('#min');
    max_field = $('#max');
    avg_field = $('#avg');
    len = $(sel).length;
    $(sel).change(function(){
       sum = 0
       list = []
       $(sel).each(function(){
            val = Number($(this).val());
            list.push(val);
            sum += val;
        })
        $(min_field).val(Math.min.apply(Math, list))
        $(max_field).val(Math.max.apply(Math, list))
        $(avg_field).val(sum/len);
     })
})

快乐编码。

关于javascript - 是否可以使用 jQuery 获取最小值和最大值并将其呈现在另一个输入字段中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3235701/

相关文章:

javascript - 将外部 json 查找中的值作为新的键/值对映射到数组中

javascript - Node 为何在此基准测试中速度如此之快?

javascript - 禁用 JavaScript 或 Jquery 全屏覆盖事件

javascript - 如何根据数据d3js设置初始确定的缩放级别

jquery - 带文本框输入的 ui slider

母版页和内容占位符中的 Javascript 验证

jQuery UI Datepicker Inline - 单击提交表单

javascript - GreaseMonkey - Firefox Web 控制台未显示所有 javascript 错误

javascript - 从 Greasemonkey 调用时,jQuery UI 对话框会抛出错误

javascript - ng-switch 在 ng-repeat Angularjs 中