mysql两个下拉框_两个下拉框的纠葛

1.说明:后台传来两个list(datelist/weeklist)分别要放入两个下拉框,而且两个list的值一一对应,即datelist.get(i)与weeklist.get(i)值相等,要达到的效果是---->若选中第一个下拉框的值(假设值的索引为index),第二个下拉框的值必须也显示索引为index的option,反之亦然。

2.想法:由于考虑了第二个下拉框虽可以对应显示,但是显示之后,无论是恶意还是非恶意用户,都可能会对第二个下拉框重新进行选择,所以想着选中一个下拉框,第二个下拉框对应显示之后,将第二个下拉框禁用,即disabled=true,结果是什么呢,说来很是愤怒,禁用之后,页面的值始终传不到servlet里,不论是重启服务器,还是一遍一遍的部署,控制台上显示的总是null。可是问题的来源只在那个范围内,修改了所有自己能想到的问题,没有改善,不知怎的,突然冒出来一个想法:总不能是disabled的问题吧,不管了,死马当活马医,抱着侥幸心理试了一试,果然是真的,禁用之后后台不能通过request.getParameters(name)获得值,那么问题来了,怎么预防那些恶意或非恶意用户的输入呢,思虑甚久后,我便开始抓耳挠腮,变得急躁,就开始在自己已经写好的程序上测试找成就感,结果是什么呢,我多虑了,选中第一个下拉框的值之后,如果再去选第二个下拉框的不对应的值,第一个下拉框的值也会跟着改变,根本不存在不对应数据存入数据库的问题。真是山重水复疑无路!

3.代码:

下拉框中放入值

会议日期:

--请选择--

会议星期:

--请选择--

针对下拉框的JS校验代码

var mrdate = document.getElementById("mrdate");

var mrweek = document.getElementById("mrweek");

var v4 = document.getElementById("v4");

var v5 = document.getElementById("v5");

function fillweek(){

var index = mrdate.selectedIndex;

if(index != 0){

var op = mrweek.options;

op[index].selected = true;

//alert(op[index].value);

mrweek.value = op[index].value;

//alert(mrweek.value);

//mrweek.disabled = true;禁用下拉框会导致选中的值无法通过name传向servlet!!!

result = 1;

v4.innerHTML = "YES";

}else{

v4.innerHTML = "请选择一项";

result = 0;

}

}

function filldate(){

var index = mrweek.selectedIndex;

if(index != 0){

var op = mrdate.options;

op[index].selected = true;

mrdate.value = op[index].value;

//alert(mrdate.value);

//mrdate.disabled = true;

result = 1;

v5.innerHTML = "YES";

}else{

v5.innerHTML = "请选择一项";

result = 0;

}

}

注:其中的result与该问题无关,该变量用来汇总form表单中所有校验反馈,从而在表单提交的时候,如果所有用户输入导致的result皆为1,那么onsubmit()的返回值就是true,如下:

总结:

思虑太多,反而易陷入怪圈不能自已。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值