web 界面设计---js提交表单
2024-08-30 16:21:25
- <script type="text/javascript">
- function checkImage(){
- var imageValue = document.getElementById("actorCard:imageField:image").value;
- if(imageValue !== ""){
- document.getElementById("actorCard").sumbit();
- }else if(imageValue == ""){
- alert("image field required !");
- document.getElementById("actorCard:imageField:image").focus();
- return false;
- }
- }
- </script>
上面那个代码是正确的,但是漏了这点:当用户输入一个或者多个空格的时候,它也可以通过验证的。所以要想更周全些就要加上这句话了:fieldValue = fieldValue.replace(/\s/gi,"");来把空格的情况去除掉。(在var定义的变量之后加上)
按钮的代码:
- <h:commandButton id="save" value="Save"
- onclick="return checkImage()" action="#{actorCardHome.persist}"
- disabled="#{!actorCardHome.wired}"
- rendered="#{!actorCardHome.managed}" />
这里特别说明下:
(1)在按钮的事件onclick="return checkImage()",而不是onclick="checkImage()",否则达不到效果它同样会提交表单。
(2) JS的判断空值和非空值这样来写:
if(imageValue !== "") 和 if(imageValue == "")
(3)我这里的id可能是比较特殊的,因为我的是JSF的页面,所以要看源代码才可以知道id。
(4)document.getElementById("actorCard:imageField:image").focus();这一句重新定位到那个必须填的字段的位置。这句比较好。特别提醒的是:这句后面的return false;如果没有它的话表单同样会提交,所以一定要记得把这句加上。
- 上面的代码已经很完善了,但是我再次看的时候又有些遗漏的地方,所以我在把它补充完整。(因为我最近在做模板的时候出现了问题)
- 1. signin.jsp
- <script type="text/javascript" src="js/common.js"></script>
- <s:form name="loginForm" action="./openid.servlet" method="post">
- <table>
- <tr>
- <td align="right">Username:</td>
- <td align="left">
- <input type="text" id="username" name="username" value="" class="joinField"><br />
- <span id="error_username"></span>
- </td>
- </tr>
- <tr>
- <td align="right">Password:</td>
- <td align="left">
- <input type="password" id="password" name="password" value="" class="joinField"><br />
- <span id="error_password"></span></td>
- </tr>
- <tr>
- <td align="right">
- <input type="submit" id="loginButton" onclick="return checkField();" value="login" class="btn-submit">
- </td>
- <td align="left"><br />
- <span id="error_login" class="error"></span></td>
- </tr>
- </table>
- </s:form>
- 这里我要说明三点:这个也是我出错的地方所在。
- (1)这一句:<input type="submit" id="loginButton" onclick="return checkField();" value="login">里面的type="submit",非常重要,由于当时种种原因我不小心写成了type="button",所以导致我的执行在执行JS的时候总是提交不了。document.getElementById("loginForm").sumbit(); 这句是JS的提交代码。
- (2)document.getElementById("loginForm").sumbit(); 这里的loginForm是指的是form表单的ID号而不是"提交按钮"的ID号,这里一定要注意。
- (3)document.getElementById("error_username").innerHTML = "username is not null !";这里的"error_username"指的是ID哦,因为我当时在原有的代码上改没注意它当时是class,然后就报错,找了我好半天的功夫啊!
- 2. common.js
- function checkField(){
- var usernameValue = document.getElementById("username").value;
- var passwordValue = document.getElementById("password").value;
- usernameValue = usernameValue.replace(/\s/gi,"");
- passwordValue = passwordValue.replace(/\s/gi,"");
- if(usernameValue !== "" && passwordValue !== ""){
- 这里不能写下面那个语句,如果写了后会提交form表单2次。而应该直接写return true;就可以了。切记!!
- //document.getElementById("loginForm").submit();
- return true;
- }else if(usernameValue == "" && passwordValue == ""){
- document.getElementById("error_username").innerHTML = "username is not null !";
- document.getElementById("error_password").innerHTML = "password is not null !";
- return false;
- }else if(usernameValue !== "" && passwordValue == ""){
- document.getElementById("password").focus();
- document.getElementById("error_username").innerHTML = "";
- document.getElementById("error_password").innerHTML = "password is not null !";
- return false;
- }else if(passwordValue !== "" && usernameValue == ""){
- document.getElementById("username").focus();
- document.getElementById("error_password").innerHTML = "";
- document.getElementById("error_username").innerHTML = "username is not null !";
- return false;
- }
- }
http://blog.csdn.net/haqer0825/article/details/8152829
http://solodu.iteye.com/blog/421587
最新文章
- 大数据之Yarn——Capacity调度器概念以及配置
- [Keygen]IntelliJ IDEA 14.1.7
- iis7 64位 操作excel的一系列问题(未完待续)
- FMDB浅析
- jquery异步加载json格式的数据
- Android开发(二十八)——基础功能函数
- PRML Chapter 1. Introduction
- 设计模式:建造者模式(Builder)
- 【转】让iframe在iOS设备手机浏览器上支持滚动
- TSharding:用于蘑菇街交易平台的分库分表组件
- Android访问C#的WebService要注意的问题
- 支持HTML5新标签
- Weka-学习
- CodeForces 146E - Lucky Subsequence DP+扩展欧几里德求逆元
- Linux的/etc/issue、/etc/issue.net和/etc/motd的区别
- api (三)文本字符输出 (转)
- Merge into的使用详解-你Merge了没有
- 2016";百度之星"; - 资格赛(Astar Round1) Problem D
- 201521123090 《Java程序设计》第7周学习总结
- java基础复习+大数运算
热门文章
- linux 05
- 条款8:别让异常逃离析构函数(prevent exception from leaving destructors)
- tornado框架基础07-sqlalchemy查询
- elasticsearch 中文 term &; completion suggester
- 【MFC】利用MFC写一个计时器小程序
- js总结(三):面向对象,prototype ,oo模拟
- [luoguP1186] 玛丽卡(spfa)
- [luoguP1119] 灾后重建(Floyd)
- [NOIP1998] 提高组 洛谷P1011 车站
- [CodePlus2017]汀博尔