Цитата:
|
Цитата:
|
Цитата:
выручай! :help: |
tp-20,
var plan = $('[name=plan]');
|
рони,
этот вариант я тоже пробовал, но select не меняется. https://jsfiddle.net/tps20/qdym1uvb/2/ - тут накидал, чтобы проще ориентироваться. |
Цитата:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.10.3/themes/south-street/jquery-ui.css">
<form method="post" name="calc" onsubmit="recalc(); return false;">
<div>
<select name="plan" id="plan">
<option value="1000">Start</option>
<option value="3000">Medium</option>
<option value="5000">Pro</option>
</select>
</div>
<div>
<input name="sum" id="calc_sum" type="text" class="minCost" value="" />
<div class="slider"></div>
</div>
<div>
<input name="calc_btn" value="Рассчитать" type="submit">
</div>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
jQuery(function($) {
var plan = $('[name=plan]');
var input = $('input.minCost');
var slider = $('.slider').slider({
range: 'max',
min: 1000,
max: 5000,
value: 1000,
step: 10,
animate: 300,
slide: function(event, ui) {
input.val(ui.value);
checkPlan();
}
});
input.val(slider.slider('value'));
checkPlan();
plan.on('change', function() {
slider.slider('value', this.value);
input.val(this.value);
});
input.on('change', function() {
var value = this.value;
if (value > 5000) value = 5000;
if (value < 1000) value = 1000;
this.value = value;
checkPlan();
slider.slider('value', value);
});
$('input').keypress(function(event) {
var key, keyChar;
if (!event) var event = window.event;
if (event.keyCode) key = event.keyCode;
else if (event.which) key = event.which;
if (key == null || key == 0 || key == 8 || key == 13 || key == 9 || key == 46 || key == 37 || key == 39) return true;
keyChar = String.fromCharCode(key);
if (!/\d/.test(keyChar)) return false;
});
function checkPlan() {
var value = input.val();
if (value == 1000 || value == 3000 || value == 5000) plan.val(value)
}
});
</script>
</body>
</html>
|
рони,
да, спасибо! то что надо. подскажи пожалуйста ещё один момент. нужно указать диапазон value: например от 1000 до 2999, от 3000 до 4990, и от 4991 до 5000 - для примера. я так понял, это на строке 68 нужно изменить условие для value - должны быть диапазоны, чтобы при движении ползунка значения в селекте чётко переключались. что-то типа такого:
if ((value >= 1000 && value <= 2999) ||
(value >= 3000 && value <= 4990) ||
(value >= 4991 && value <= 5000)) plan.val(value)
|
tp-20,
function checkPlan() {
var value = +input.val();
if (value < 2300) value = 1000;
else if (value < 3600) value = 3000;
else value = 5000;
plan.val(value)
}
|
добрый вечер.
вопрос по слайдеру. как убрать второй ползунок? т.е. range не нужен. просто нужен одиночный ползунок. Спасибо!
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.10.3/themes/south-street/jquery-ui.css">
<div id="slider"></div>
<input type="text" name="from" id="from" value="" placeholder="from" />
<input type="text" name="to" id="to" value="" placeholder="to" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
myData = [ 1,2,4,6,8,10,20,30,40,50,100,200,300,400,500 ];
slider_config = {
range: true,
min: 0,
max: myData.length - 1,
step: 1,
slide: function( event, ui ) {
// Set the real value into the inputs
$('#from').val( myData[ ui.values[0] ] );
$('#to').val( myData[ ui.values[1] ] );
},
create: function() {
$(this).slider('values',0,0);
$(this).slider('values',1,myData.length - 1);
}
};
// Render Slider
$('#slider').slider(slider_config);
</script>
<style>
* {
font-family:Arial;
font-size:20px;
}
body {
padding:20px;
}
#slider { margin:20px }
</style>
</body>
</html>
|
tp-20,
:-?
slider_config = {
min: 0,
max: myData.length - 1,
step: 1,
slide: function( event, ui ) {
$('#from').val( myData[ ui.value ] );
},
create: function(event, ui) {
$('#from').val( myData[0] );
}
};
|
| Часовой пояс GMT +3, время: 12:48. |