我有数量选择输入,可提供一系列数量。
如果值(objRtn.numMultiPages)与data-qty值匹配,我可以使用jquery选择一个值,但如果数量介于2个中断之间,我就会卡住,例如如果我给它一个9的数量我希望它选择10的上限值,23将选择25等。
var selVal = $('#qtySelect').find("[data-qty='"+ objRtn.numMultiPages +"']").val();
if (selVal != undefined){
$('#qtySelect').val(selVal);
console.log(selVal);
} else {
alert("too many pages");
}
<select name="qtySelect" id="qtySelect" class="form-control">
<option class="qtyValue" value="14380" data-qty="5">Quantity: 5</option>
<option class="qtyValue" value="14381" data-qty="10">Quantity: 10</option>
<option class="qtyValue" value="14382" data-qty="15">Quantity: 15</option>
<option class="qtyValue" value="14383" data-qty="25">Quantity: 25</option>
<option class="qtyValue" value="14384" data-qty="50">Quantity: 50</option>
<option class="qtyValue" value="14385" data-qty="100">Quantity: 100 </option>
</select>
有人可以建议一种方法来选择最接近的上限值吗?
由于 大卫
答案 0 :(得分:0)
简单的数学;
var rounded_value = 5 * Math.round(objRtn.numMultiPages/5);
对于较高的值,您可以自己检查一下;
if (objRtn.numMultiPages > 25 && objRtn.numMultiPages < 50 ) {
var rounded_value = 25 * Math.round(objRtn.numMultiPages/25);
} else if (objRtn.numMultiPages > 50 ) {
var rounded_value = 50 * Math.round(objRtn.numMultiPages/50);
}...
等。等
答案 1 :(得分:0)
试试这个:
var vals = -1;
$('#qtySelect').find("[data-qty]").each(function(i, el){
if(objRtn.numMultiPages < $(el).data("qty") && vals === -1){
vals = $(el).data("qty");
return;
}
});
var selVal = $('#qtySelect').find("[data-qty='"+ vals +"']").val();
if (selVal != undefined){
$('#qtySelect').val(selVal);
console.log(selVal);
} else {
alert("too many pages");
}
JSFiddle:http://jsfiddle.net/ZLFE6/