Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Подсчет данных формы при загрузке (https://javascript.ru/forum/jquery/70219-podschet-dannykh-formy-pri-zagruzke.html)

pava467 21.08.2017 07:17

Подсчет данных формы при загрузке
 
Всем привет. Есть код;:
$(window).load(function() {
		$('input[name="k-less"]').change(function () {
			summ = $(this).val();
			perhour = parseInt($('.kperhour').text(), 10);
			kurs = 65;
			console.log('summ '+summ+' perhour '+perhour+' kurs '+kurs+'')
			summ = summ*perhour*kurs;
			$('.k-cost').text(summ);
			function onlod (){
			$('input[name="ik_am"]').val(summ);
			};
			console.log('k-less');
		});
	});


Он считает по курсу с долара в рубли. Но результат подсчета выводиться только если в поле с количеством нажимать на стрелочки
http://prntscr.com/gb0zob или же после ввода цифры и клика мышкой в любом месте. Я установил по умолчанию 1 а все равно выводит 0

Как сделать что бы сразу же при загрузке страницы считало?

laimas 21.08.2017 07:35

Цитата:

Сообщение от pava467
function onlod (){
$('input[name="ik_am"]').val(summ);
};

Это что такое? И что должно считать сразу при загрузке если форма пустая, то есть цену в рублях никто не вводил еще?

pava467 21.08.2017 07:38

function myFunc() {
        $('input[name="k-less"]').change(function () {
			summ = $(this).val();
			perhour = parseInt($('.kperhour').text(), 10);
			kurs = 65;
			console.log('summ '+summ+' perhour '+perhour+' kurs '+kurs+'')
			summ = summ*perhour*kurs;
			$('.k-cost').text(summ);
			function onlod (){
			$('input[name="ik_am"]').val(summ);
			};
			console.log('k-less');
		});
    }    
	$('input[name="k-less"]').change(myFunc);
	wiodow.onload = myFunc;


Код выше использую, так же не работает.
Да, должно считать если даже не кто ничего не водил. Нужно считать по цифре в поле по умолчанию, стоит 1.

laimas 21.08.2017 07:42

Цитата:

Сообщение от pava467
Да, должно считать если даже не кто ничего не водил. Нужно считать по цифре в поле по умолчанию, стоит 1.

Зачем считать для 1, если у вас указан и так курс?

Вы бы лучше код формы своей показали, а то не понять причем тут text() и для чего.

А function onlod (){ ...., это какая-то абракадабра.

pava467 21.08.2017 07:49

<span class="wpcf7-form-control-wrap k-skype"><input type="text" name="k-skype" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required"></span> </div>
	<div class="vlo2"> Количество занятий</div>
	<div class="put">
    <span class="wpcf7-form-control-wrap k-less"><input type="number" name="k-less" value="1" class="wpcf7-form-control wpcf7-number wpcf7-validates-as-required wpcf7-validates-as-number" aria-invalid="false"></span> </div>
    <div class="clear"></div>
	<div class="vlo2 amm">Всего: </div>
	<div class="put amm2">
    <span class="wpcf7-form-control-wrap k-cost strong gr">0</span></div>
					<form class="asd" method="post" action="">
				<input type="hidden" name="ik_co_id" value="">
				<input type="hidden" name="ik_cur" value="RUB">
				<input type="hidden" name="ik_desc" value="lenword.com">
				<input type="hidden" name="ik_x_name" value="">
				<input type="hidden" name="ik_x_fam" value="">
				<input type="hidden" name="ik_x_email" value="">
				<input type="hidden" name="ik_x_skype" value="">
				<input type="hidden" name="ik_x_prepod" value="<?php nazva(); ?>">
				<input type="hidden" name="ik_x_less" value="1">
				<?php $v = $wpdb->get_row( "SELECT * FROM kpays WHERE id=(SELECT MAX(id) FROM kpays)", ARRAY_A);?>

				<input type="hidden" name="ik_pm_no" value="<?php echo $v['id']+1; ?>">	
				<input id="paycost" type="hidden" name="ik_am" value="100">
				<div class="clear"></div>
				<div class="c">
				<button type="submit" class="button133j kinter">
					Оплатить
				</button>
				</div>
			</form>

laimas 21.08.2017 08:01

Цитата:

Сообщение от pava467
<?php $v = $wpdb->get_row( "SELECT * FROM kpays WHERE id=(SELECT MAX(id) FROM kpays)", ARRAY_A);?>

"SELECT id FROM kpays ORDER BY id DESC LIMIT 1", если всего то нужно $v['id'] и все. Но $v['id']+1 настораживает.

В коде формы не видно '.kperhour' и того что на изображении. То что указано на изображении (курс валюты) ведь уже есть, зачем его считать, или же в поле формы это должно быть помещено? В таком случае почему сервер сразу не отдает форму с перерасчетом по курсу, а уже при вводе будет считать JS?

pava467 21.08.2017 08:11

<?php echo  '<div class="cnt">Стоимость: <span class="kperhour">'?><?php echo cena();?><?php echo '</span><span class="pokur">Курс: 1$ = 55 руб.</span></div></div><div class="clear m10"></div>'?>
					
					<div class="vlo2"> Телефон *</div>
					<div class="put">
    <span class="wpcf7-form-control-wrap k-fam"><input type="text" name="k-fam" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" aria-invalid="false"></span> </div>
					<div class="vlo2"> E-mail *</div>
					<div class="put">
    <span class="wpcf7-form-control-wrap k-email"><input type="email" name="k-email" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-email wpcf7-validates-as-required wpcf7-validates-as-email" aria-required="true" aria-invalid="false"></span></div>
	<div class="vlo2"> Логин скайп </div>
	<div class="put">
    <span class="wpcf7-form-control-wrap k-skype"><input type="text" name="k-skype" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required"></span> </div>
	<div class="vlo2"> Количество занятий</div>
	<div class="put">
    <span class="wpcf7-form-control-wrap k-less"><input type="number" name="k-less" value="1" class="wpcf7-form-control wpcf7-number wpcf7-validates-as-required wpcf7-validates-as-number" aria-invalid="false"></span> </div>
    <div class="clear"></div>
	<div class="vlo2 amm">Всего: </div>
	<div class="put amm2">
    <span class="wpcf7-form-control-wrap k-cost strong gr">0</span></div>
					<form class="asd" method="post" action="">
				<input type="hidden" name="ik_co_id" value="">
				<input type="hidden" name="ik_cur" value="RUB">
				<input type="hidden" name="ik_desc" value="lenword.com">
				<input type="hidden" name="ik_x_name" value="">
				<input type="hidden" name="ik_x_fam" value="">
				<input type="hidden" name="ik_x_email" value="">
				<input type="hidden" name="ik_x_skype" value="">
				<input type="hidden" name="ik_x_prepod" value="<?php nazva(); ?>">
				<input type="hidden" name="ik_x_less" value="1">
				<?php $v = $wpdb->get_row( "SELECT * FROM kpays WHERE id=(SELECT MAX(id) FROM kpays)", ARRAY_A);?>

				<input type="hidden" name="ik_pm_no" value="<?php echo $v['id']+1; ?>">	
				<input id="paycost" type="hidden" name="ik_am" value="100">
				<div class="clear"></div>
				<div class="c">
				<button type="submit" class="button133j kinter">
					Оплатить
				</button>
				</div>
			</form>


есть данные:
цена за один урок - например 5 $
курс доллара - например 55 р

форма должна при загрузке считать 5*55*на цифру в поле где количество занятий
она считает и показывает но только когда вручную нужно вбить Количество и кликнуть в любом месте екрана

По умолчанию должно умножать на 1. и сразу же выводить результат

Спасибо. Сори что долго объясняю

Белый шум 21.08.2017 08:12

$(window).load(function() {
        $('input[name="k-less"]').change(function () {
            summ = $(this).val();
            perhour = parseInt($('.kperhour').text(), 10);
            kurs = 65;
            console.log('summ '+summ+' perhour '+perhour+' kurs '+kurs+'')
            summ = summ*perhour*kurs;
            $('.k-cost').text(summ);
            console.log('k-less');
        }).trigger("change");
    });

pava467 21.08.2017 08:36

Спасибо, число выводит на екран. Но не передает его в форму, опять же нужно кликать по счетчику что бы передавало.

laimas 21.08.2017 08:40

pava467,
это понятно, не понятно чего вы считать собрались при загрузке страницы? Пусть 1 (то что по умолчанию в форме указано) и его цена $5. Сервер отдает форму ну так почему ему сразу не просчитать эту цену в рублях и вывести как по умолчанию? Зачем этим напрягать клиента? Он будет считать только по изменению, то есть при вводе значения форму.


Часовой пояс GMT +3, время: 10:39.