今天刚做了一个通过select下拉框修改数据的功能,因为select没有click点击事件,所以当选中下拉框中的数据后,使用onchange事件,但是在js中应该写bind(“change”,function(){…})。注意这里用的是change,不是onchange。
下面是我做的实例:
1、body下的内容:
<select id="data" class="data" name="${o.id }" size="1">
<c:forEach items="${cc }" var="cc">
<option value="${cc.data}" <c:if test="${cc.data== o.data}">selected</c:if>>${cc.data}</option>
</c:forEach>
</select>
这是我项目里的代码,有些东西可能不是大家需要的,我把关键的东西一会放在后面说。
2、js代码:
$(".data").bind("change",function(){
var dataname = $(this).val();
var url = "basic/update/updateData?id="+$(this).attr("name");
$.post(url,{"dataname":dataname},function(rd){
if(rd.flag){
layer.msg("修改成功");
window.location.reload();
}else{
layer.alert(rd.msg);
}
})
});
这是走后台方法修改数据的代码,用到的框架是spring MVC。
大家可以看到,我用的是class绑定的时间,其实用id也可以,只是我的项目里在表格中有很多下拉框,使用id只能修改一条数据,使用class可以对所有数据进行修改;name属性是获取到当前这条数据的id;后面是用post提交数据,对于向后台传递数据的方法可以使用自己的方法。