实现思路
- 在数据库中count计算出复制到前台模板数组的长度。
- 在前台模板中,将数组长度存储在div中。
- 使用jq获取长度l,并存储在js中,给每一个select下拉框添加class值。
- js中使用一个for循环。
- 待续
/这些是废话。。。。。/
新的实现思路
- 给所有select选项设定class属性。
- 给所有的class的添加each function (){ }操作
- $(this).attr();
- 待续……….
- 上代码
<script type="text/javascript">
function sm(){
var data = new Array();
var change_price =new Array();
//对选中的option进行操作
$("option:selected").each(function(){
var id=$(this).attr('data-id');
var detail_price=$(this).attr('id'); //价格
data.push(parseInt(id)); //id数组
change_price.push(parseInt(detail_price)); //每项价格数组
});
if ($.inArray(0,data)==-1) {
//0代表select没有选择,如果返回-1说明0在数组中不存在,所有select都已经被选择。
var price=parseInt($('.phonename').attr('id'));
var result = 0;
for(var i=0;i<change_price.length;i++){
result += change_price[i];
}
var price=result+price;
$('#form').submit();
}else {
alert('您好像还有数据没有填写完整');
}
}
</script>
- 这是一个手机估价功能。
- 后台提供手机各个属性报价及手机初始价格。
- id中存放手机初始价格和属性价格,data-id存放属性id(需要传递到后台,以供存储)。
- 其中inArray判断是否所有select是否均被选中。
- 特别注意,jq获取的值需要使用parseInt进行数据类型强制转换,由string转换成int,否则的话会inArray会一直返回-1。
- 这样可以减轻后台压力,能在前端完成的操作都在前端进行。