Как запушить значения в select?
В {{::min}} и {{::max}} передается минимальное и максимальное значение,я хочу передать в селект значение от min до max,и построить его чтобы было примерно так,если min =1000 а max=5000 ,то строится селект с выборами 1000,1001,1002....5000,но не получается,что делаю не так?
<div id="q1">{{::min}}</div>
<div id="q2">{{::max}}</div>
<select id="minim" ></select>
var min = $("#q1").text();
var max = $("#q2").text();
min1 = parseInt(min, 10);
max1 = parseInt(max, 10);
for (var i = min1; i < max1; i++)
{
$("#minim").push(i);
}
|
тут нужен не push
$("#minim").push(i);
}
a
$("#minim").append('<option value="'+i+'">'+i+'</option>')
|
Список не имеет метода .push(), это не массив. Добавлять в него нужно опции (<option></option>)
|
Цитата:
|
Цитата:
|
Цитата:
$("#minim").append('<option value="'+i+'">'+i+'</option>')
|
Или нативными методами...
<SELECT ID="oSelect">
<OPTION VALUE="1">One</OPTION>
</SELECT>
<SCRIPT>
var oOption = document.createElement("OPTION");
document.getElementById('oSelect').options.add(oOption);
oOption.innerHTML = "Two";
oOption.Value = "2";
</SCRIPT>
|
Цитата:
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<select id="minim"></select>
<script>
for (var i = 0; i < 20; i++) {
$("#minim").append('<option value="'+i+'">'+i+'</option>')
}
</script>
</body>
</html>
|
Цитата:
лучше сделать так
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<input type="text" id="shir" value="1000"><br>
<input type="range" min="1000" max="5000" step="1" value="1000" id="shirR">
<script>
$('#shirR').on('input', function() {
var rng = $('#shirR').val();
$('#shir').val(rng);
});
</script>
</body>
</html>
|
Цитата:
$('#shirR').on('input', function() {
$('#shir').val(this.value);
});
|
Цитата:
|
но мне к сожалению нужно сделать именно выпадающим списком,а вот такой вопрос,если у меня много селектов и у каждого свой min и max будт то как сделать?ведь скрипт сработает только для первого id ,а если задать классами то у всех будет одинаково все
|
INSIDER73,
Цитата:
<div class="item">
<div class="q1">{{::min}}</div>
<div class="q2">{{::max}}</div>
<select class="minim" ></select>
</div>
$(function() {
$(".item").each(function(indx, el){
//$(".minim", el) ...
});
});
|
Цитата:
|
Цитата:
Так?
$(function() {
$(".item").each(function(indx, el){
var min = $(".q1").text();
var max = $(".q2").text();
min1 = parseInt(min, 10);
max1 = parseInt(max, 10);
for (var i = min1; i < max1; i += 10000)
{ $(".minim").append($('<option value="' + i + '">' + i + '</option>')) }
});
});
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
$(function() {
$(".item").each(function(indx, el){
var min = $(this).children(".q1").text();
var max = $(this).children(".q2").text();
min1 = parseInt(min, 10);
max1 = parseInt(max, 10);
for (var i = min1; i < max1; i += 10000)
{ $(this).children(".minim").append($('<option value="' + i + '">' + i + '</option>')) }
});
});
примерно так. |
Цитата:
|
Цитата:
|
Цитата:
Цитирую автора темы: "если min =1000 а max=5000 ,то строится селект с выборами 1000,1001,1002....5000" |
Цитата:
Вот так и с органами управления можно поступать, к тому же элементом range можно управлять и клавиатурой, к примеру ползунком это грубо, с большим шагом, клавиатурой точно. Но в общем-то данный вопрос возник не поэтому, а потому, что в вашем коде второе поле формы как прицеп только для отображения. Если же это связанные элементы (либо ползунок, либо ввод), то значит и скрипт должен быть соответствующий - изменения в поле ввода должны отражаться и на слайдере. |
| Часовой пояс GMT +3, время: 01:38. |