如何处理下拉列表的十进制值而不舍入或修剪零
How to handle the decimal values of my dropdown list without rounding or trimming zeros
我有一个带有十进制值的下拉列表。(格式为字符串)
<select id="SizeBox">
<option id="size_5" value="14.00">14</option>
<option id="size_6" value="16.00">16</option>
<option id="size_7" value="18.00">18</option>
<option id="size_8" value="20.00">20</option>
<option id="size_9" value="24.00">24</option>
<option id="size_10" value="28.00">28</option>
<option id="size_11" selected="selected" value="28.35">28,35</option>
<option id="size_12" value="36.00">36</option>
</select>
我总是获取选定的值并将其保存在变量中:
var backupSize = "28.35";
当用户选择其他大小并想要撤消其更改时,我提供了一个重置按钮,该按钮应再次选择 backupSize 值。
SelectSize(parseFloat(backupSize).toFixed(2));
function SelectSize(size) {
$('#SizeBox').val(size);
}
问题是使用此 toFixed 方法会删除我的十进制精度并将值 28.00 传递给 SelectSize 函数。当然,我的列表中没有具有此值的选项,因此重置功能失败。
如果我使用 SelectSize 函数而不使用 toFixed(2) 部分, 那么像 "20.00" 这样的值将作为 "20" 传递, 并且 SelectSize 函数也无法重置下拉框中的大小。
我已经搜索了像字符串一样处理这些十进制数字的函数,但到目前为止还没有成功。我该如何解决这个问题?
感谢您的任何帮助!
以下是几乎
适用于任何值的东西:工作示例:http://jsfiddle.net/4DSNS/2/
var backupSize = 20
var backupSize = 28.35
var backupSize = "28.35"
var backupSize = "20.00"
var backupSize = "20"
var backupSize = "28.35"
var backupSize = "28,35"
function SelectSize(size) {
size = size.toString().replace(',','.');
parseFloat(size).toFixed(2);
$('#SizeBox').val(size);
}
SelectSize(backupSize);
像这样修改你的 selectSize 函数:
SelectSize(backupSize);
function SelectSize(size) {
$("#sizebox option").attr("selected","");
$("#sizebox option[value='"+size+"']").attr("selected","selected");
}
Hiya tdk 请参阅此工作演示 http://jsfiddle.net/B3Uwj/1/
如果我错过了什么,请告诉我,这应该工作正常。
当通过 20.00 时它有效,它不会失败报价:
如果我使用 SelectSize 函数而不使用 toFixed(2) 部分,则 像"20.00"这样的值将作为"20"传递,SelectSize 函数 也无法重置下拉框中的大小。
J查询代码
var backupSize = "20.00";
SelectSize(parseFloat(backupSize).toFixed(2));
function SelectSize(size) {
alert("Size is (Preserving the .00 ==> " + size);
$('#SizeBox').val(size);
}
// mini jQuery plugin that formats to two decimal places
(function($) {
$.fn.currencyFormat = function() {
this.each( function( i ) {
$(this).change( function( e ){
if( isNaN( parseFloat( this.value ) ) ) return;
this.value = parseFloat(this.value).toFixed(2);
});
});
return this; //for chaining
}
})( jQuery );
// apply the currencyFormat behaviour to elements with 'currency' as their class
$( function() {
$('.currency').currencyFormat();
});
相关文章:
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- 如何在不向上舍入的情况下删除尾随小数
- 为什么图像不会放入画布中
- 在javascript中不带舍入的十进制比较
- 将此代码重写为“使用缓动而不是淡入飞行”
- 如何处理下拉列表的十进制值而不舍入或修剪零
- toFixed(2) 对 “x.525” 的舍入不一致
- jQuery Cycle 插件“放大”而不是淡入
- JQuery 自定义灯箱 - 不透明度淡入淡出
- 使用 .show(“slow”)时不会淡入
- 如何在内容不同时淡入的情况下淡入到新背景
- Javascript四舍五入到最接近的小数点后2位(但向下五舍五入)
- 不透明度淡入仅在延迟时有效
- 使用CSS3或JS对图像进行不透明度淡入淡出
- 在Javascript中将双精度型转换为整型,不需要舍入
- 为什么我的图像不能渐入渐出?
- jQuery幻灯片不会淡入淡出
- 不能推入数组对象
- 不透明度淡入仅在调试模式下工作
- 简单的Javascript CSS不透明度淡入淡出函数