2017-10-14 47 views
1

如何按百分比增加或减少所有字段值?

$("button").on("click",function(){ 
 
    var $this=$(this); 
 
    var Per=$(".per").val(); 
 
    $(".anuzau").each(function(){ 
 
     var Val=$(this).val(); 
 
     if($this.hasClass("zau")) 
 
     $(this).val((((Val/100)*Per)+parseInt(Val)).toFixed(2)); 
 
     else if($this.hasClass("anu")) 
 
     $(this).val((parseInt(Val)-((Val/100)*Per)).toFixed(2)); 
 
    }); 
 
});
.anuzau{width:200px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="anu">-</button> <input class="per" type="text" size="6" value="0">% 
 
<button class="zau">+</button> 
 
<br><br> 
 
<input type="text" size="6" class="anuzau" name="name" value="38.5"><br> 
 
<input type="text" size="6" class="anuzau" name="name" value="75"><br> 
 
<input type="text" size="6" class="anuzau" name="name" value="100">

我要递增/递减通过类名的所有值(ANU劭),任何人都可以分享我的jQuery的方法?我已经尝试了很多教程。 我是新来的,如果有什么不对,请大家指正。

<button class="anu">-</button> <input type="text" size="6" value="">% 
 
<button class="zau">+</button> 
 
<br><br> 
 

 
<td><input type="text" size="6" class="anu zau" name="name" id="id" value="50"></td><br> 
 
<td><input type="text" size="6" class="anu zau" name="name" id="id" value="200"></td><br> 
 
<td><input type="text" size="6" class="anu zau" name="name" id="id" value="530"></td>

+0

做u需要像 “50” 基础数据的百分比变化对每一次点击或相关数据? –

回答

0

这应该让你开始。尚不清楚你在找什么精度(相应调整decimal_points)

var decimal_points = 2 
 

 
$('button').click(function(){ 
 
    var pVal = $('#percent').val(), 
 
    percent = pVal && !isNaN(pVal) ? +pVal/100 : 0; 
 
    //make it negative if anu button clicked 
 
    if($(this).hasClass('anu')){ 
 
    percent = 0-percent; 
 
    } 
 
    $('input.anu').val(function(_, val){ 
 
    // make sure input has numeric value 
 
    if(!val || isNaN(val)){ 
 
     return val; 
 
    }else{ 
 
     return (+val + (val * percent)).toFixed(decimal_points); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="anu">-</button> <input id="percent" type="number" size="6" value="">% 
 
<button class="zau">+</button> 
 
<br><br> 
 

 
<td><input type="text" size="6" class="anu zau" name="name" id="id" value="50"></td><br> 
 
<td><input type="text" size="6" class="anu zau" name="name" id="id" value="200"></td><br> 
 
<td><input type="text" size="6" class="anu zau" name="name" id="id" value="530"></td>

+0

我所看到的这个代码是为我工作2个小数点与1%,为什么这个答案是-vote?我正在使用它,使用@charlietfl脚本是否存在任何错误或任何安全问题? – Jeny

+0

没有错。有人可能是恶意的 – charlietfl

+0

好的,你的代码工作完美。你能检查一件事吗?当您输入小于0.50和1%的数值而不增加数值时。就像输入0.49和1%一样。谢谢。 – Jeny

1

$("button").on("click",function(){ 
 
    var $this=$(this); 
 
    var Per=$(".per").val(); 
 
    $(".anuzau").each(function(){ 
 
     var Val=$(this).val(); 
 
     if($this.hasClass("zau")) 
 
     $(this).val((((Val/100)*Per)+parseInt(Val))); 
 
     else if($this.hasClass("anu")) 
 
     $(this).val((parseInt(Val)-((Val/100)*Per))); 
 
    }); 
 
});
.anuzau{width:200px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="anu">-</button> <input class="per" type="text" size="6" value="0">% 
 
<button class="zau">+</button> 
 
<br><br> 
 
<input type="text" size="6" class="anuzau" name="name" value="50"><br> 
 
<input type="text" size="6" class="anuzau" name="name" value="200"><br> 
 
<input type="text" size="6" class="anuzau" name="name" value="530">

+0

不需要2个相同的循环时,只有一个变量是不同 – charlietfl

+0

@Farhad Bagherlo,嗨,真是太好了。您是否可以按百分比值再按1查看。这不是50的反映值。只有当百分比值为1时,问题才有效。 – Jeny

+0

嗨.50中的1%得到0.5,这是完全正确的 –

相关问题