如何解决用数组填充选择框
| 我有一个包含两个单选按钮,一个选择框和两个数组的表单。 如果我选择了第一个单选按钮,则选择框值应填充为“ 0”,如果选择了单选按钮2,则选择框应填充为“ 1”。<script type=\"text/javascript\">
var array1=[\"1\",\"2\",\"3\"];
var array2=[\"4\",\"5\",\"6\"];
</script>
<form name=\"form\" id=\"form\">
Radio button 1<input name=\"btn1\" id=\"a1\" type=\"radio\" value=\"Radio button 1\">
Radio button 2<input name=\"btn1\" id=\"a2\" type=\"radio\" value=\"Radio button 2\" />
<select id=\"s1\" name=\"myname\">
<option selected></option>
</select>
</form>
<script type=\"text/javascript\">
$(document).ready(function(){
$(\'#a1\').change(function() {
alert(\'do array1\');
});
$(\'#a2\').change(function() {
alert(\'do array2\');
});
})
</script>
我得到了单选按钮的值,但是如何用数组值填充选择框?
解决方法
jQuery的
var array1=[\"1\",\"2\",\"3\"];
var array2=[\"4\",\"5\",\"6\"];
var map = { a1 : array1,a2 : array2 };
$(\'#a1,#a2\').change(function() {
$(\"#s1 option\").remove();
$.each(map[this.id],function(i,val) {
var opt = $(\"<option />\");
opt.appendTo($(\"#s1\")).text(val).val(val);
});
});
html
Radio 1<input name=\"btn1\" id=\"a1\" type=\"radio\" value=\"Radio button 1\" />
Radio 2<input name=\"btn1\" id=\"a2\" type=\"radio\" value=\"Radio button 2\" />
<select id=\"s1\" name=\"myname\">
<option selected></option>
</select>
您可以在这里尝试。
,$(document).ready(function(){
$(\'input[name=btn1]\').change(function(){
var arr = [];
if($(this).attr(\'id\') == \'a1\')
arr = array1;
else
arr = array2;
$(\'select#s1 option\').remove();
$.each(arr,function(index,item){
$(\'select#s1\').append(\'<option value=\"\'+item+\'\">\'+item+\'</option>\"\');
});
});
});
,$(\"#radio_button\").change(function(){
$(\"option\",\"#select_element\").remove();
var select_options = $(\"#select_element\").attr(\"options\");
$.each(array,function()
{
select_options[select_options.length] = new Option(this[1],this[0],false,false);
});
});
,为了保持值的有条理和可读性,您可以使用单选按钮的value属性,如下所示:
<input name=\"btn1\" id=\"a1\" type=\"radio\" value=\"1,2,3\" />
<input name=\"btn1\" id=\"a2\" type=\"radio\" value=\"4,5,6\" />
并管理变更。
$(\"[name=\'btn1\']\").change(function (e) {
var array = $(this).val().split(\",\");
$(\"#s1\").empty();
$.each(array,function (index,value) {
$(\"<option />\").appendTo(\"#s1\").text(value).val(value);
});
});
这样,您就不会以变量“ floating”结束。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。