700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 如何在某些情况下禁止提交Select下拉框中的默认值或者第一个值(默认选中的就是第一个

如何在某些情况下禁止提交Select下拉框中的默认值或者第一个值(默认选中的就是第一个

时间:2021-02-12 16:59:42

相关推荐

如何在某些情况下禁止提交Select下拉框中的默认值或者第一个值(默认选中的就是第一个

群里有个帅哥问了这么个问题,他的下拉框刚进页面时是隐藏起来的,但是是有值的,为啥呢?因为下拉框默认选中了第一个值呗,,,

所以提交数据的时候就尴尬啦,明明没有选,但是还是有值滴。怎么办呢?

一开始看到的时候不是很理解他的意思,提交的时候判断一下把获取选中的值赋值为空不就好啦。难道还有什么深意?

不过这样是不是有点麻烦或者有点太low啊,想着的时候,群里的大神来了一句设置属性disabled=true就可以了。

许久不看jq,许久没用下拉框,连长什么样子都记不清楚了,哪里敢乱说误人子弟,看到大神这样提一句,想着这样好像更简洁一点哎。

但是实在是记不清楚了这个用法了哎,真悲催,这脑子,赶紧打开电脑恶补一番吧,,

问题需求:

当刚进入页面没点按钮的时候下拉框是隐藏的,然后设置默认属性disabled="disabled",禁用此元素,当然也会禁用里面的值,这个时候如果直接提交的话,不会把默认的值给带过去,然后点击按钮显示下拉框的时候,把select元素的disabled属性变为false,表示启用该元素,就可以选择值,进行传值啦。问题解决,如此简单。

不过我想的那样其实也是可以的。。

手贱啦,怎么着都想实现一下看看,然后写了几句,,

按照大神看法:

1.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP '1.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script src="/jquery/1.10.2/jquery.min.js"></script><script>$(document).ready(function(){$(document).bind("click",function(e){//如果点击的不是显示按钮和选择框,就执行隐藏方法if($(e.target).closest("#testSelect").length==0&&$(e.target).closest("#xianshi").length==0&&$(e.target).closest("#tijiao").length==0){//隐藏节点$("#testSelect").hide();//改变节点属性$("#testSelect").prop("disabled",true);}});$("#xianshi").click(function(){$("#testSelect").show();$("#testSelect").attr("disabled",false);});});function myFunction(){$("#myForm").submit();}</script></head><body><form id="myForm" action="2.jsp" method="get"><p id="xianshi">点击选择!</p><select id="testSelect" name="se" style="display:none;" disabled="disabled"><option value="volvo">Volvo</option><option value="saab">Saab</option><option value="opel">Opel</option><option value="audi">Audi</option></select><input id="tijiao" type="button" value="提交" οnclick="myFunction()" /></form></body></html>

按照我之前看法:

1.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP '1.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script src="/jquery/1.10.2/jquery.min.js"></script><script>$(document).ready(function(){

//绑定一个点击事件$(document).bind("click",function(e){//如果点击的不是显示按钮和选择框,就执行隐藏方法if($(e.target).closest("#testSelect").length==0&&$(e.target).closest("#xianshi").length==0&&$(e.target).closest("#tijiao").length==0){//隐藏节点$("#testSelect").hide();}});$("#xianshi").click(function(){$("#testSelect").show();});});function myFunction(){check();$("#myForm").submit();}function check(){if($("#testSelect").css("display")=="none"){$("#testSelect").val(null);}}</script></head><body><form id="myForm" action="2.jsp" method="get"><p id="xianshi">点击选择!</p><select id="testSelect" name="se" style="display:none;"><option value="volvo">Volvo</option><option value="saab">Saab</option><option value="opel">Opel</option><option value="audi">Audi</option></select><input id="tijiao" type="button" value="提交" οnclick="myFunction()" /></form></body></html>

2.jsp

<body><%String name=request.getParameter("se");out.print("值为: "+name);%> </body>

效果看着是一样的啦,不过还是用更改属性值的方法吧,相对简便又保险一点。。

老是在原生js里逛,jq都快忘光啦,菜鸟一枚,大神们有什么好的学习方法,请多多赐教啊,,

不写啦,喝口水去。。

_ __ __ __ __ __ __ __ __ __ __ __ __ __ __ _ 分割线_ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ _

又加了点东西,添上来,留个纪念:

按大神思路实现:

<script src="/jquery/1.10.2/jquery.min.js"></script><script>$(document).ready(function(){//设置默认属性值 $(".ele").prop("disabled",true);//在dom上绑定一个点击事件 $(document).bind("click",function(e){//如果点击的不是显示按钮和选择框,就执行隐藏方法if($(e.target).closest("#myDiv").length==0&&$(e.target).closest("#xianshi").length==0&&$(e.target).closest("#tijiao").length==0){//隐藏节点$("#myDiv").hide();//改变节点属性$(".ele").prop("disabled",true);}});//点击显示按钮 $("#xianshi").click( function(){$("#myDiv").show();$(".ele").attr("disabled",false);} );});function myFunction(){$("#myForm").submit();}</script></head><body><form id="myForm" action="2.jsp" method="get"><p id="xianshi">点击选择!</p><div id="myDiv" style="display:none;" ><select id="testSelect" name="se" class="ele"><option value="volvo">Volvo</option><option value="saab">Saab</option><option value="opel">Opel</option><option value="audi">Audi</option></select><input type="checkBox" name="checkBox" checked="checked" value="足球" class="ele"/>足球<input type="checkBox" name="checkBox" value="篮球" class="ele"/>篮球<input type="checkBox" name="checkBox" value="排球" class="ele"/>排球<input type="radio" name="radio" checked="checked" value="男" class="ele"/>男<input type="radio" name="radio" value="女" class="ele"/>女</div><br/><input id="tijiao" type="button" value="提交" onclick="myFunction()" /></form></body>

按我的思路实现:

<script src="/jquery/1.10.2/jquery.min.js"></script><script>$(document).ready(function(){//绑定一个点击事件 $(document).bind("click",function(e){//如果点击的不是显示按钮和选择框,就执行隐藏方法if($(e.target).closest("#myDiv").length==0&&$(e.target).closest("#xianshi").length==0&&$(e.target).closest("#tijiao").length==0){//隐藏节点$("#myDiv").hide();}});//点击显示按钮 $("#xianshi").click( function(){$("#myDiv").show();} );});function myFunction(){check();$("#myForm").submit();}function check(){if($("#myDiv").css("display")=="none"){$(".ele").val(null);}}</script></head><body><form id="myForm" action="2.jsp" method="get"><p id="xianshi">点击选择!</p><div id="myDiv" style="display:none;" ><select id="testSelect" name="se" class="ele"><option value="volvo">Volvo</option><option value="saab">Saab</option><option value="opel">Opel</option><option value="audi">Audi</option></select><input type="checkBox" name="checkBox" checked="checked" value="足球" class="ele"/>足球<input type="checkBox" name="checkBox" value="篮球" class="ele"/>篮球<input type="checkBox" name="checkBox" value="排球" class="ele"/>排球<input type="radio" name="radio" checked="checked" value="男" class="ele"/>男<input type="radio" name="radio" value="女" class="ele"/>女</div><br/><input id="tijiao" type="button" value="提交" onclick="myFunction()" /></form></body>

2.jsp

<body><%String se=request.getParameter("se");String radio=request.getParameter("radio");String[] checkBox=request.getParameterValues("checkBox");String str="";if(checkBox!=null){for(String s : checkBox){str+=s+" ";}}out.print("下拉框值为: "+se+"<br/>");out.print("多选框值为: "+str+"<br/>");out.print("单选框值为: "+radio+"<br/>");%></body>

效果图:

挺好玩de..

如何在某些情况下禁止提交Select下拉框中的默认值或者第一个值(默认选中的就是第一个值啦……)...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。