根据所选号码指定号码范围

当用户选择数字1000243时,我想要另一个选项来从该输入的数字中选择200个数字。 它会是:

//User Input Number Here  1000243 //Automatically Generate 200 Number Range  1000244 ...INTO... 1000443 

或者,用户选择一个4500123的数字,所以另一个选项将范围从4500124到4500323的200个数字:

  //User Input Number Here  4500123 //Automatically Generate 200 Number Range  4500124 ...INTO... 4500324 

有一点是用户选择的手动号码在选择的下拉选项中。

这该怎么做? 提前致谢。

如果您可以使用jQuery,那么您可以使用更改事件处理程序来更新第二个选择

 var $auto = $('#automatic') $('#manual').on('change', function () { var value = +$(this).val(); $auto.empty(); for (var i = 0; i < 200; i++) { $(' 

演示: 小提琴


没有jQuery

 var auto = document.getElementById('automatic'); var manual = document.getElementById('manual'); manual.addEventListener('change', updateAutomatic, false); function updateAutomatic() { while (auto.firstChild) { auto.removeChild(auto.firstChild); } var value = +manual.value; for (var i = 0; i < 200; i++) { var opt = document.createElement('option'); opt.value = i + value; opt.innerHTML = i + value; auto.appendChild(opt); } } updateAutomatic(); 

演示: 小提琴

你可以做类似下面的事情

 $('#manual').change(function(){ var val = +($(this).val()); var automaticOptionsHtml = ''; for(var i=1;i<=200;i++){ var value = val + i; automaticOptionsHtml += ''; } $('#automatic').html(automaticOptionsHtml) }) 

DEMO

你的问题有点不清楚,所以我做了一个你可以使用的function:

 function genOptions (n, elem) { var new_select = $(''); n = +n;//Makes n an interger for (var i = n+1; i < n+200+1; i += 1) { new_select.append(''); } $(elem).append(new_select); return new_select; } genOptions(100, "body"); 

我在这里用结果运行了这个

小提琴

如果已经定义了#automatic

 function genOptions (n) { var new_data = '';//Blank string n = +n;//Makes n an interger for (var i = n+1; i < n+200+1; i += 1) {//Loop from n to n+200, we must add 1 because JavaScript counting starts at 0 new_data += '';//Add the new option to the group of options } $('#automatic').html(new_data);//Add the group of options to the select return new_select;//This is not really needed, you can ignore this, really } $('#get_run').click(function () {//When the button is clicked,... genOptions($('#get_start').val());//Run the function, and pass the value of the input }); 

小提琴

这是如何工作的

所以第一部分是我们创建一个空字符串,其中所有新options都将进行。 接下来,我们将循环,从起始编号的所有数字到起始编号加上200.当我们循环时,我们将数字添加到选项中。 完成后,我们将options添加到select

我的回答缩短了

这有点难以理解,但代码更紧凑:

 function genOptions(t){var n="";t=+t;for(var o=t+1;t+200+1>o;o+=1)n+='";return $("#automatic").html(n),new_select} 

尝试

 var manual = $("#manual"); var automatic = $("#automatic"); manual.on("change", automatic, function(e) { var value = Number(e.target.value) + 200; $(e.data).val(value).find("option").html(value); }); 
     

http://jsfiddle.net/szhxff0w/1/

这可能就是你要找的东西。

使用for循环使用blur()事件填充组合。

编辑:onclick可能效果更好,但你明白了……

HTML

    

JS

 $(window).load = function () { populate(); } $('#init').blur(function () { populate (); }) function populate () { var n = $('#init').val(); $('#models').empty(); for (var i = 0; i <= 200; i++) { var x = parseInt(n) + i; $('#models').append(""); }