假设一个select有三个option,值分别为A,B,C
当select选择A的时候,我修改select的值为B,但是在修改为B的同时,我需要获取它之前的值A
问题就来了,给select应用onchange事件时,通过jquery的val获取到的是修改后的值
解决办法就是:
定义一个全局变量
全局变量E
给select绑定click事件,当单击发生时,这时select的值还没有改变,通过val获取后,存放到全局变量E里
给select绑定onchange事件,当修改值时,通过val获取的值是修改后的值,而这时存放在全局变量E里面的值就是修改之前的值了
菜鸟记录,高手不要吐槽
以下为代码:主要解决多个select选项值相同时,其中一个已经选择了某项后,其他select就不能再选择
01 | <script> |
02 | var select_old_value; |
03 | $(document).ready( function (){ |
04 | $( "select" ).click( function (){ |
05 | //存储select修改之前的值 |
06 | select_old_value=$( this ).val(); |
07 | }); |
08 | }); |
09 | //给select绑定的onchange事件处理函数 |
10 | function del_option(obj) |
11 | { |
12 | var op_val=$(obj).val(); |
13 | if (op_val) |
14 | { |
15 | $( "select" ).each( function () { |
16 | $( this ).children( "option[value='" + op_val + "']" ).attr( "disabled" , "disabled" ); |
17 | $( this ).children( "option[value='" + select_old_value + "']" ).attr( "disabled" , false ); |
18 | }); |
19 | $(obj).children( "option[value='" + op_val + "']:disabled" ).attr( "disabled" , false ); |
20 | $(obj).children( "option[value='" + select_old_value + "']:disabled" ).attr( "disabled" , "disabled" ); |
21 | } |
22 | } |
23 | </script> |
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《js里面获取select修改值以前的值》
发表评论