用户名、密码、复选框,全选各种验证

本文详细介绍了HTML、JavaScript及Servlet在表单验证中的应用,包括客户端验证与服务器端验证,以及如何通过验证确保用户输入的有效性和安全性。

1、验证:

客户端验证:

减少服务器负载
缩短用户等待时间
兼容性难

服务器端验证:

统一确认
兼容性强
服务器负载重

2、使用Javascript进行表单检验的常用方法:

[javascript] view plaincopyprint?

var username = document.getElementByIdx_x("username");

var username = document.getElementsByName("username")[0];

var nodes = document.getElementsByTagName_r("input");


2.1、基本的表单验证例子:

HTML代码:

[html] view plaincopyprint?

<</SPAN>form onsubmit="return validate()" action="loginServlet">

username:<</SPAN>input type="text" id="username" name="username"/><</SPAN>br />

password:<</SPAN>input type="password" id="username" name="password"><</SPAN>br />

<</SPAN>input type="submit" value="submit" />

</</SPAN>form>

username:
password:

JS验证代码:

[javascript] view plaincopyprint?

function validate(){

10 //使用getElementById方法获取元素

11 var username = document.getElementByIdx_x("username");

12 var password = document.getElementByIdx_x("password");

13 //使用getElementsByName获取一组元素

14 //var username = document.getElementsByName("username")[0];

15 //var username = document.getElementsByName("password")[0];

16 //获取元素的值 并判断长度

17 if(username.value.length == 0){

18 alert("用户名不能为空");

19 return false;

20 }

21 if(password.value.length <6){

22 alert("密码不能少于6");

23 return false;

24 }

25 return true;

26 }

27 //根据标签获取元素组

28 var nodes = document.getElementsByTagName_r("input");

29 for(var i=0; i

30 //获取标签类型

31 alert(nodes[i].type);

32 }

2.2、单选按钮的验证例子:

HTML代码:

[html] view plaincopyprint?

33 <</SPAN>input type="radio" name="gender" value="">

34 <</SPAN>input type="radio" name="gender" value="">

JS验证代码:

[javascript] view plaincopyprint?

35 //单选按钮的验证

36 var gender = document.getElementsByName("gender");

37 if(!gender[0].checked && !gender[1].checked){

38 alert("请选择性别!");

39 }

2.3、复选框全选的例子:

HTML代码:

[html] view plaincopyprint?

40 <</SPAN>input type="checkbox" name="selectAll" onclick="selectAll()">Select all<</SPAN>br />

41 <</SPAN>input type="checkbox" name="number" value="1">1<</SPAN>br />

42 <</SPAN>input type="checkbox" name="number" value="2">2<</SPAN>br />

43 <</SPAN>input type="checkbox" name="number" value="3">3<</SPAN>br />

44 <</SPAN>input type="checkbox" name="number" value="4">4<</SPAN>br />

45 <</SPAN>input type="checkbox" name="number" value="5">5<</SPAN>br />

46 <</SPAN>input type="checkbox" name="number" value="6">6<</SPAN>br />

47 <</SPAN>input type="checkbox" name="number" value="7">7<</SPAN>br />

48 <</SPAN>input type="checkbox" name="number" value="8">8<</SPAN>br />

49 <</SPAN>input type="checkbox" name="number" value="9">9<</SPAN>br />

50 <</SPAN>input type="checkbox" name="number" value="10">10<</SPAN>br /><</SPAN>inputtype="checkbox" name="number">10<</SPAN>br />

JS代码:

[javascript] view plaincopyprint?

51 

52 function selectAll(){

53 var selectAll = document.getElementsByName("selectAll")[0];

54 if(selectAll.checked){

55 var numbers = document.getElementsByName("number");

56 for(var i=0; i

57 numbers[i].checked = true;

58 }

59 } else {

60 for(var i=0; i

61 numbers[i].checked = false;

62 }

63 }

64 }

判断复选框是否有选择:

[javascript] view plaincopyprint?

65 

66 function validateCheckbox(){

67 var n = 0;

68 for(var i=0; i

69 if(numbers[i].checked){

70 n++;

71 }

72 }

73 if(n < 1){

74 alert("至少要选择一项");

75 }

76 }

3、在服务器端使用Servlet进行验证的例子:

[java] view plaincopyprint?

77 @Override

78 protected void doGet(HttpServletRequest req, HttpServletResponse resp)

79 throws ServletException, IOException {

80 String username = req.getParameter("username");

81 String password = req.getParameter("password");

82 //获取单选按钮的值

83 String gender = req.getParameter("gender");

84 //获取复选框的值

85 String[] numbers = req.getParameterValues("number");

86 List list = new ArrayList();

87 //验证判断

88 if("".equals(username)){

89 list.add("用户名不能为空");

90 }

91 if(password == null){

92 list.add("用户密码不能为空");

93 }

94 if(password != null && password.length()<</SPAN>6){

95 list.add("用户密码不能少于6");

96 }

97 //页面跳转

98 if(list.isEmpty()){

99 req.getRequestDispatcher("index.jsp").forward(req, resp);

100 } else {

101 req.setAttribute("error", list);

102 req.getRequestDispatcher("error.jsp").forward(req, resp);

103 }

104 }

4Servlet中的编码设置:

[java] view plaincopyprint?

105 req.setCharacterEncoding("utf-8");

106 resp.setCharacterEncoding("utf-8");

107 ...

108 //编码设置

109 gender = new String(gender.getBytes("iso-8859-1"),"utf-8");

内容概要:本文介绍了一个基于冠豪猪优化算法(CPO)的无人机三维路径规划项目,利用Python实现了在复杂三维环境中为无人机规划安全、高效、低能耗飞行路径的完整解决方案。项目涵盖空间环境建模、无人机动力学约束、路径编码、多目标代价函数设计以及CPO算法的核心实现。通过体素网格建模、动态障碍物处理、路径平滑技术和多约束融合机制,系统能够在高维、密集障碍环境下快速搜索出满足飞行可行性、安全性与能效最优的路径,并支持在线重规划以适应动态环境变化。文中还提供了关键模块的代码示例,包括环境建模、路径评估和CPO优化流程。; 适合人群:具备一定Python编程基础和优化算法基础知识,从事无人机、智能机器人、路径规划或智能优化算法研究的相关科研人员与工程技术人员,尤其适合研究生及有一定工作经验的研发工程师。; 使用场景及目标:①应用于复杂三维环境下的无人机自主导航与避障;②研究智能优化算法(如CPO)在路径规划中的实际部署与性能优化;③实现多目标(路径最短、能耗最低、安全性最高)耦合条件下的工程化路径求解;④构建可扩展的智能无人系统决策框架。; 阅读建议:建议结合文中模型架构与代码示例进行实践运行,重点关注目标函数设计、CPO算法改进策略与约束处理机制,宜在仿真环境中测试不同场景以深入理解算法行为与系统鲁棒性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值