मैं एक विकल्प चयन बॉक्स के अंत में नया मान जोड़ने की कोशिश कर रहा हूं। संख्या 1 से शुरू होने के बजाय जारी रहनी चाहिए।

var n_standard = 1;

function removeStandard() {
  var select = document.getElementById('selectBoxStandard');
  for (var i = Number($("#selectBoxStandard").val()); i <= n_standard; i++){
    var opt = document.createElement('option');
    opt.value = i;
    opt.innerHTML = i;
    select.appendChild(opt);
  }
}
<label for="rooms" style="color:black">No. of rooms: </label>
<select required tabindex="10" id="selectBoxStandard" name="n_rooms">
  <option value="0">0</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
</select>

यह जावास्क्रिप्ट कोड n_standard के मान के आधार पर विकल्प का मान भरेगा, इसे 1 से फिर से शुरू करने के बजाय संख्या जारी रखनी चाहिए।

कार्यक्रम आउटपुट

   option
    0
    1
    2
    3
    4
    5
    6
    1

अपेक्षित आउटपुट

option
0
1
2
3
4
5
6
7
8
0
Rei 6 फरवरी 2019, 13:25

3 जवाब

सबसे बढ़िया उत्तर

आप क्वेरी कर सकते हैं कि कितने option select के पास वर्तमान में हैं और उसे ऑफसेट के रूप में जोड़ें:

var offset = select.find("option").length;
opt.value = i + offset;
var n_standard = 1;

function removeStandard() {
  var select = $('#selectBoxStandard');
  var offset = select.find("option").length;

  // not clear why you would start at 5 and check 5<=1 which will always give nothing
  // so for demo, always adds one item (so doesn't need the loop)
  // change n_standard to add more than one at a time
  //for (var i = Number(select.val()); i <= n_standard; i++) {

  for (var i = 0; i < n_standard; ++i) {
    var opt = document.createElement('option');
    opt.value = i + offset;
    opt.innerHTML = i + offset;
    select.get(0).appendChild(opt);
  }
}

$("#b").click(removeStandard);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label for="rooms" style="color:black">No. of rooms: </label>
<select required tabindex="10" id="selectBoxStandard" name="n_rooms">
  <option value="0">0</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>

</select>
<button id='b'>click me</button>

वैकल्पिक रूप से, यदि अंतराल हो तो आप प्रारंभ मान को उच्चतम मान पर सेट कर सकते हैं।

1
freedomn-m 6 फरवरी 2019, 13:37

<select> में <option> की संख्या प्राप्त करने के लिए अपने कोड में select.length का प्रयोग करें। https://www.w3schools.com/jsref/prop_select_length.asp

var n_standard = 1;
function removeStandard(){
 var select = document.getElementById('selectBoxStandard');
  for (var i = Number($("#selectBoxStandard").val()); i< n_standard; i++){
    var opt = document.createElement('option');
    opt.value = select.length;
    opt.innerHTML = select.length;
    select.appendChild(opt);
  }
}

removeStandard();
1
CoursesWeb 6 फरवरी 2019, 13:38

यह स्पष्ट नहीं है कि आप क्या करने की कोशिश कर रहे हैं। लेकिन यदि आप लूप के लिए इसके माध्यम से विकल्प बढ़ाने की कोशिश कर रहे हैं तो इसे आजमाएं:

var n_standard = 9;
var select = document.getElementById('selectBoxStandard');
for (var i = Number(select.value); i <= n_standard; i++) {
            var opt = document.createElement('option');
            opt.value = i;
            opt.innerHTML = i;
            select.appendChild(opt);}

यह गतिशील रूप से n_standar के आधार पर बढ़े हुए मूल्य वाले विकल्पों को जोड़ देगा।

0
user5078243user5078243 6 फरवरी 2019, 14:01