2017-10-14 113 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,這是完全正確的 –