Jquery дополнительная функция не работает - добавление номера рядом - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь получить "Radio value" и добавление функции mq (+). Номера не собраны. Добавление бок о бок. Но я хочу математическую операцию. Умножение работает.

$('input[name="toplama"], input[name="toplama2"]').on('change', function() {
   var value1 = $('input[name=toplama]:checked').val();
   var value2 = $('input[name=toplama2]:checked').val();
   $( "#sonuclar" ).text( value1 + value2 );
});
$(function(){
	var value1 = $('input[name=toplama]:checked').val();
   var value2 = $('input[name=toplama2]:checked').val();
    $( "#sonuclar" ).text( value1 + value2 );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="toplama">
	<label>
		<input type="radio" class="toplama" name="toplama" value="10" checked />
		10 value
	</label>
	<label>
		<input type="radio" class="toplama" name="toplama" value="20" />
		20 value
	</label>
	<br><br><br>
	<label>
		<input type="radio" class="toplama" name="toplama2" value="10" />
		10 value
	</label>
	<label>
		<input type="radio" class="toplama" name="toplama2" value="20" checked />
		20 value
	</label>
</div>
<div id="sonuclar">
	
</div>

1 Ответ

1 голос
/ 03 мая 2020

Проблема с вашей реализацией в том, что значения, которые вы извлекаете из DOM, являются строковыми. Вот почему ваши числа (которые на самом деле являются строками) просто объединяются, а не добавляются математически. Вам нужно проанализировать ваши строковые значения в целые числа. Вы можете использовать parseInt() для этого и показано ниже,

$('input[name="toplama"], input[name="toplama2"]').on('change', function() {
   var value1 = $('input[name=toplama]:checked').val();
   var value2 = $('input[name=toplama2]:checked').val();
   $( "#sonuclar" ).text( parseInt(value1) + parseInt(value2) );
});
$(function(){
	var value1 = $('input[name=toplama]:checked').val();
   var value2 = $('input[name=toplama2]:checked').val();
    $( "#sonuclar" ).text( parseInt(value1) + parseInt(value2) );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="toplama">
	<label>
		<input type="radio" class="toplama" name="toplama" value="10" checked />
		10 value
	</label>
	<label>
		<input type="radio" class="toplama" name="toplama" value="20" />
		20 value
	</label>
	<br><br><br>
	<label>
		<input type="radio" class="toplama" name="toplama2" value="10" />
		10 value
	</label>
	<label>
		<input type="radio" class="toplama" name="toplama2" value="20" checked />
		20 value
	</label>
</div>
<div id="sonuclar">
	
</div>
...