jquery multiselect下拉列表复选框动态怎么动态添加option并赋值

jquery multiselect下拉列表复选框动态怎么动态添加option并赋值,第1张

虽然不太明白为什么refresh方法不起作用,不过还有另外一个方法:

// data 是ajax返回的json数据

$get("xxxhtmla=" + a, function (data) {

var site = new Array();

$each(data, function(index, values) {

    //循环将data数据的结构重新调整为下面这样的:[{label:xxx,value:id}]

    // laebl相当于option的文字,value则是option的value,结构不能错

sitepush({

label : valuessite_name,

value : valuesid

});

});

//重点是这里,不用refresh方法,用下面这个。

$("#site_id")multiselect('dataprovider',site);

});

如果你在查询数据库的时候直接就这样:

select id as value, city_name as label from 表名

那么返回值在js那里就不需要循环改变结构了,直接可以用:

$("#site_id")multiselect('dataprovider',data);

这个用js 的ajax实现,这个是3级的 级联菜单。前台用jquery,后台用 php写的,希望对你有帮助。

var category_0= <php echo isset($_POST['categories_0'])$_POST['categories_0']:"0";>;

var category_1=<php echo isset($_POST['categories_1'])$_POST['categories_1']:"0";>;

var select_template=<php echo isset($_POST['templates'])$_POST['templates']:"0";>;

//初始值 categorie_id=0;

var parms="categories_id="+0;

$ajax({

url:"ajax_templatephp",

data:parms,

async:false,

type:"get",

datatype:"json",

success:function(msg){

var content_arr=eval(msg);

var categories_arr=eval(content_arr[0]);

var template_arr=eval(content_arr[1]);

var op="<option value='0'>SELECT shops</option>"

$each(categories_arr,function(k,v){

if(k==category_0){

op+="<option value='"+k+"' selected>"+v+"</option>";

}else{

op+="<option value='"+k+"' >"+v+"</option>";

}

});

$("#categories_0")append(op);

}

});

//如果categories_1有选择某个值,则刷新后选择上一次的值作为刷新后的初始值。

if(category_1>0){

var parms="categories_id="+category_0;

$ajax({

url:"ajax_templatephp",

data:parms,

async:false,

type:"get",

datatype:"json",

success:function(msg){

var content_arr=eval(msg);

var categories_arr=eval(content_arr[0]);

var template_arr=eval(content_arr[1]);

var op="";

$each(categories_arr,function(k,v){

if(k==category_1){

op+="<option value='"+k+"' selected>"+v+"</option>";

}else{

op+="<option value='"+k+"' >"+v+"</option>";

}

});

$("#categories_1")append(op);

}

});

}

//如果templates有选择某个值,则刷新后选择上一次的值作为刷新后的初始值。

if(select_template>0){

var parms="categories_id="+category_1;

$ajax({

url:"ajax_templatephp",

data:parms,

async:false,

type:"get",

datatype:"json",

success:function(msg){

var content_arr=eval(msg);

var categories_arr=eval(content_arr[0]);

var template_arr=eval(content_arr[1]);

var op="";

$each(template_arr,function(k,v){

if(k==select_template){

op+="<option value='"+k+"' selected>"+v+"</option>";

}else{

op+="<option value='"+k+"' >"+v+"</option>";

}

});

$("#templates")append(op);

}

});

}

//categorie_0值改变,影响后面的两个 categorie_1,template选择框

$("#categories_0")bind("change",function(){

var select_val=$("#categories_0")val()

if(select_val>0){

$("#categories_1")empty();

$("#templates")empty();

var parms="categories_id="+select_val;

$ajax({

url:"ajax_templatephp",

data:parms,

async:false,

type:"get",

datatype:"json",

success:function(msg){

var content_arr=eval(msg);

var categories_arr=eval(content_arr[0]);

var template_arr=eval(content_arr[1]);

var op=""

$each(categories_arr,function(k,v){

op+="<option value='"+k+"' >"+v+"</option>";

});

$("#categories_1")append(op);

}

});

}else{

$("#categories_1")empty();

$("#templates")empty();

}

});

//categorie_0,categorie_1值改变,影响后面的template选择框

$("#categories_0,#categories_1")bind("change",function(){

createTemplate($("#categories_1")val() );

});

function createTemplate(category_id){

$("#templates")empty();

var parms="categories_id="+category_id;

$ajax({

url:"ajax_templatephp",

data:parms,

async:false,

type:"get",

datatype:"json",

success:function(msg){

var content_arr=eval(msg);

var categories_arr=eval(content_arr[0]);

var template_arr=eval(content_arr[1]);

var op="";

$each(template_arr,function(k,v){

op+="<option value='"+k+"' >"+v+"</option>";

});

$("#templates")append(op);

}

});

}

如果页面是服务端代码的话,用个循环输出内容及标签就可以了

如果是html代码的话,用ajax请求后台方法,输出json,然后前台js动态绑定到select就行了,这个部分可以参考easyui的combobox,一句js就可以搞定:$('#你的select标签ID')combobox('loadData', result);,result是返回的json

你的问题都没有说明运行环境和技术,只能这样给你个思路了

动态生成的 现在可以监听到所有的下拉框的事件 但是该怎么区分是选择的哪行的下拉框 进行数组组装呢?

因为每次新增都需要重新渲染一下 所以lay-verify的值也是动态生成的

目前是可以拿到所有select的监听

java  代码 是后台执行 , 在前台 是无法执行的 ,

如果要从后台获取数据  要使用ajax的方式  在回调函数里面增加选项

function addOneOption(){

$ajax({

    url:url,

    success:function(data){

     var optionlist = eval('(' +data + ')');

     var selectObj=documentgetElementById("user_dm");

    var option = documentcreateElement("option");

    for(var t = 0 ;t < optionlistlength;t++)

    { 

        optionvalue=optionlist[t];

        optioninnerHTML = t;

        selectObjappendChild(option);

    }

    },

});

var selectObj=documentgetElementById("user_dm");

var option = documentcreateElement("option");

for(var t = 0 ;t < optionlistlength;t++)

optionvalue=optionlist[t];

optioninnerHTML = t;

selectObjappendChild(option);

}

</script>

====================================

<body>

<select id="user_dm" name="user_dm">

</select><br>

<input type="button" onClick="addOneOption()" value="添加">

</body>

documentgetElementByid('sel')onchange=function(){

documentgetElementsByTagName('body')[0]stylefontSize=documentgetElementByid('sel')value;

}

sel是select下拉列表的id,你这个option的值不对需要改下,改成存在的字体

通过for循环判断每个选项,一旦满足条件则设置其selected属性为true即可,关键代码:

下面给出实例演示:

1、HTML结构

2、javascript代码

3、设置效果:如图设置选中项为2,点击按钮后“赵云”即被选中。

扩展资料:

selected 定义和用法

selected 属性规定在页面加载时预先选定该选项。

被预选的选项会显示在下拉列表最前面的位置。

也可以在页面加载后通过 JavaScript 设置 selected 属性。

参考资料:

百度百科JS

以上就是关于jquery multiselect下拉列表复选框动态怎么动态添加option并赋值全部的内容,包括:jquery multiselect下拉列表复选框动态怎么动态添加option并赋值、JS怎么生成动态关联option、如何让select标签动态加载数据库的值到option列表中呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10155874.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存