Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Использовать данные slider.ui для расчетов (https://javascript.ru/forum/jquery/70680-ispolzovat-dannye-slider-ui-dlya-raschetov.html)

the_little 25.09.2017 08:59

Использовать данные slider.ui для расчетов
 
Всех приветствую. Начал изучать Javascript и jquerry.
Сделал на сайте несколько ползунков на jquerry.

Далее мне нужно использовать значения в ползунках для дальнейших расчетов.

Пробовал
var summ = document.getElementById("contentSlider").innerHTML;

не работают.

попробовал так
var srok = $( "#contentSlider" );

работает, но выводит [object Object], а если применить математические действия - то выводит NaN

Попробовал так
var summ = $( ".landing-raschet-srok-number-summ" ).text;

и он выдал мне
function ( value ) { return access( this, function( value ) { return value === undefined ? jQuery.text( this ) : this.empty().each( function() { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { this.textContent = value; } } ); }, null, value, arguments.length ); }


Я не могу понять, как же мне получить те значения, которые он выдает в ползунки...

Код одного из ползунков:
$(document).ready(function(){
    	$( "#slider" ).slider({
			range: "min",
			value : 50000000,//Значение, которое будет выставлено слайдеру при загрузке
			min : 100000,//Минимально возможное значение на ползунке
			max : 100000000,//Максимально возможное значение на ползунке
			step : 100000,//Шаг, с которым будет двигаться ползунок
			create: function( event, ui ) {
				val = $( "#slider" ).slider("value");//При создании слайдера, получаем его значение в перемен. val
				$( "#contentSlider" ).html( addSpaces(val.toString()) );//Заполняем этим значением элемент с id contentSlider
			},
        	slide: function( event, ui ) {
			$( "#contentSlider" ).html( addSpaces(ui.value.toString()) );//При изменении значения ползунка заполняем элемент с id contentSlider
        }
    });
});

function addSpaces(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ' ' + '$2');
	}
	return x1 + x2;
}

рони 25.09.2017 09:09

the_little,
document.getElementById("contentSlider").value
или
$( "#contentSlider" ).val();
если это input

the_little 25.09.2017 10:19

Цитата:

the_little,
document.getElementById("contentSlider").value
Попробовал так. Выдает undefined

Цитата:

$( "#contentSlider" ).val();
если это input
В моем случае это просто div
Хотя нужно чтобы это был input type=text, и при этом туда можно было вписывать значение, но это отдельная тема для разговора. Я пока до этого не дошел, как это сделать...

рони 25.09.2017 10:26

Цитата:

Сообщение от the_little
В моем случае это просто div

$( "#contentSlider" ).html();

the_little 25.09.2017 10:38

Цитата:

Сообщение от рони (Сообщение 465402)
$( "#contentSlider" ).html();

Пробовал так
srok = $( "#contentSlider" ).html();
document.getElementById('calc-summ').innerHTML = srok;

в данном случае он не выводит ничего

Дополню, возможно это имеет значение.
Этот код я пишу в отдельном скрипте, в котором предполагается потом производить расчеты. Не в том, где ползунок выводится.

Хотя если открыть код страницы и посмотреть, то там написано
<div id="contentSlider2" class="landing-raschet-srok-number-summ">24</div>
<div id="contentSlider" class="landing-raschet-summa-number-summ">50 000 000</div>

рони 25.09.2017 10:42

the_little,
что мешает написать код расчёта в строке 13?

the_little 25.09.2017 11:19

Цитата:

Сообщение от рони (Сообщение 465404)
the_little,
что мешает написать код расчёта в строке 13?

пытался так сделать - ничего не получалось. Сейчас попробовал еще раз. Сначала тоже не получилось (было пусто), но подвигав ползунок - значение появилось!!!

$(document).ready(function(){
    $( "#slider2" ).slider(
    {
		range: "min",
		value : 24,//Значение, которое будет выставлено слайдеру при загрузке
		min : 1,//Минимально возможное значение на ползунке
		max : 80,//Максимально возможное значение на ползунке
		step : 1,//Шаг, с которым будет двигаться ползунок
		create: function( event, ui ) 
		{
			val = $( "#slider2" ).slider("value");//При создании слайдера, получаем его значение в перемен. val
			$( "#contentSlider2" ).html( val );//Заполняем этим значением элемент с id contentSlider
		},
    	slide: function( event, ui ) 
    	{
			$( "#contentSlider2" ).html( ui.value );//При изменении значения ползунка заполняем элемент с id contentSlider
			srok = $( "#contentSlider2" ).html();
			document.getElementById('calc-summ').innerHTML = srok;
        }
    });

});


Только как теперь сделать, чтобы он и значение по умолчанию подставлял? Он его игнорит и ничего не выводит...

рони 25.09.2017 11:33

the_little,
Цитата:

Сообщение от the_little
create

убрать.
slide продублировать в change, значение установить после инициализации.

the_little 25.09.2017 14:36

Цитата:

Сообщение от рони (Сообщение 465414)
the_little,
убрать.
slide продублировать в change, значение установить после инициализации.

Это уже сложно) По поводу убрать create и дублировать в change я правильно понял? Я пока свои новые переменные закомментил, чтобы понять сначала работает ли ползунок.

$(document).ready(function(){
    $( "#slider2" ).slider(
    {
		range: "min",
		value : 24,//Значение, которое будет выставлено слайдеру при загрузке
		min : 1,//Минимально возможное значение на ползунке
		max : 80,//Максимально возможное значение на ползунке
		step : 1,//Шаг, с которым будет двигаться ползунок
		slide: function( event, ui ) 
    	{
			$( "#contentSlider2" ).html( ui.value );//При изменении значения ползунка заполняем элемент с id contentSlider
        },
    	change: function( event, ui ) 
    	{
			$( "#contentSlider2" ).html( ui.value );//При изменении значения ползунка заполняем элемент с id contentSlider
			
			//srok = $( "#contentSlider2" ).html();
			//calc_srok = parseInt(srok, 10);
			//zxc = calc_srok + asd
			//document.getElementById('calc-summ').innerHTML = zxc;
        }
    });

});

рони 25.09.2017 14:44

the_little,
да в slide и в change одно и тоже и строка 23
$( "#slider2" ).slider("option", "value", 24)


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