2017-10-14 9 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">

Iが増加/デクリメントclassnameですべての値(ANU zau)したい、誰も私に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

私はこのコードが1%で2小数点で私のために働いているのが分かりますが、なぜこの答えが-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

1つの変数が異なる場合、2つの同一ループは不要 – charlietfl

+0

@Farhad Bagherlo、こんにちは。プレス1でパーセンテージ値で再び見直すことができますか?それは50の値を反映していません。パーセンテージの値が1の場合にのみ問題が発生します。 – Jeny

+0

50のhi .1%が0.5になり、それは完全に正しいです –

関連する問題