[英]JQuery Syntax, with .val(“”); (returning array)
我对Jquery很新,所以我对如何执行下面描述的内容感到有点困惑...
我想做什么:
在整个页面中搜索具有单词Rate的输入文本框,然后再搜索Quantity。
做一个计算,总和(费率*数量)
将结果呈现给用户。
我做了什么
我需要帮助的地方
我可以使用.val(“”)命令提取值,但我对如何执行我需要的步骤的语法感到困惑。
这是我有的:
$("#alertButton").live("click", function () {
var rateValues = $('input[name*="Rate"]').val("");
var qtyValues = $('input[name*="Qty"]').val("");
//how do i handle it here
});
这就是在html中呈现速率文本框之一(可能有0到多个,因为它们被动态添加到页面中)
<input type="text" value="0" style="width: 100%;" name="JobDetails[dd1c94e5-5e83-4a92-b5c4-0a5aea0eb5df].Rate" id="JobDetails___randomNumber___Rate" data-val-required="The Rate (Exl GST) field is required." data-val-number="The field Rate (Exl GST) must be a number." data-val="true">
当您将参数传递给“.val()” - 甚至是空字符串 - 时,您可以设置 <input>
的值。 你得到 “.VAL()”(没有参数)的值,但只得到第一个匹配元素的值。
总的来说,你可能需要使用“.map()”:
var rateValues = $('input[name*="Rate"]').map(function() {
return this.value;
});
var qtyValues = $('input[name*="Qty"]').map(function() {
return this.value;
});
这将为您提供数值和数量的数组。 如果您还想要“id”或“name”,您可以返回其他内容:
var rateValues = $('input[name*="Rate"]').map(function() {
return { value: this.value, name: this.name };
});
然后你会有一个对象数组。
要检索值,必须使用.val()
(无引号)。 实际上,您将这些字段的值设置为空字符串。
既然你说这些字段可能不止一对,你就必须实际遍历搜索结果,检索每对的值,然后计算。 现在,您将该val应用于所有匹配的输入。
var rateValues = $('input[name*="Rate"]').val();
var qtyValues = $('input[name*="Qty"]').val();
$(rateValues).each(function(i, val) {
// val is rateValues[i]
qty = qtyValues[i];
... do your calculations
});
$("#alertButton").live("click", function () {
var rateValues=new Array();
var qtyValues=new Array();
$('input[name*="Rate"]').each(function(){
rateValues.push($(this).val());
});
$('input[name*="Qty"]').each(function(){
qtyValues.push($(this).val());
});
});
应该得到你的数量和数量的数组
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.