web 界面设计---js提交表单
- <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
web 界面设计---js提交表单的更多相关文章
- 利用JS提交表单的几种方法和验证(必看篇)
第一种方式:表单提交,在form标签中增加onsubmit事件来判断表单提交是否成功 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <scr ...
- JS提交表单页面不跳转、JS下载、动态创建from
JS下载 function downloadFile(id) { var url = "<%=request.getContextPath()%>/cer/downlo ...
- 利用JS提交表单的几种方法和验证
第一种方式:表单提交,在form标签中增加onsubmit事件来判断表单提交是否成功 <script type="text/javascript"> function ...
- js提交表单错误:document.form.submit() is not a function
今天在写JS时,遇上这么个错误:"document.form.submit() is not a function",经过一番搜索,最终找到了修复方法. 这个错误一般是由于表单&l ...
- 使用jquery.form.js提交表单上传文件
方法: 1.formSerilize() 用于序列化表单中的数据,并将其自动整理成适合AJAX异步请求的URL地址格式. 2.clearForm() 清除表单中所有输入值的内容. 3.restF ...
- 什么?你还不会通过纯js提交表单?
如果程序已经封装好了, 不管后台是java .asp.net .还是php ?这个时候你的客户突然追加说我要 追加表单验证? what 妇产科 怎么办? submit 自带刷新效 ...
- 原生js提交表单
/********************* 表单提交 ***********************/ function ajax(options) { options = options || { ...
- 使用JS提交表单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js 提交表单添加csrf
function post(path, shipmentMap, method) { method = method || "post"; // Set method to pos ...
随机推荐
- Openjudge-4110-圣诞老人的礼物
这一题是一道贪心的题目,但是它比较特殊的地方在于糖果可以分开拿,我们不必整箱拿,所以我们可以直接就把糖果按照价值比从大到小排序,然后整箱装不下的时候,剩余重量乘以它的价值比,这样就算出来了. 对于结构 ...
- fstream,sstream的学习记录
fstream: #include<iostream> #include<fstream> using namespace std; int main(){ ofstream ...
- 算法导论 第八章 线性时间排序(python)
比较排序:各元素的次序依赖于它们之间的比较{插入排序O(n**2) 归并排序O(nlgn) 堆排序O(nlgn)快速排序O(n**2)平均O(nlgn)} 本章主要介绍几个线性时间排序:(运算排序非比 ...
- sql使用row_number()查询标记行号
背景: 在分页功能中,记录需分页显示,需要row_number()函数标记行号. 数据表: 排序之前数据表显示: sql语句: select ROW_NUMBER() over(order by id ...
- 【02】SASS与SCSS
SASS语法 SASS语法也称之为SASS的缩进语法,其目的是担供一个更简洁的语法.对于一些人来说,更多的是基于于CSS的美学吸引力,用SASS来代替SCSS语法. SASS语法和CSS语法不一样,他 ...
- Hadoop JVM调整解决 MapReduce 作业超时问题
摘要:由于业务需要,在mapreduce汇总时需要关联两个基础表,一个60M左右,不影响mr运行,另一个表,大小约为380M,行数为1700万行左右,在默认配置下,一旦加载这个数据就会在reduce阶 ...
- bzoj 2337 高斯消元+概率DP
题目大意: 每条路径上有一个距离值,从1走到N可以得到一个所有经过路径的异或和,求这个异或和的数学期望 这道题直接去求数学期望的DP会导致很难列出多元方程组 我们可以考虑每一个二进制位从1走到N的平均 ...
- Python的另一种开发环境--Anaconda中的Spyder
本文作者LucyGill,转载请注明出处(虽然我觉得并不会有人转载). 刚开始学Python的时候,我用的是其自带的idle(安装Python后,在开始菜单里可以找到),后来发现在eclipse中设置 ...
- 重写jQuery serialize方法,使文本框在没有输入的情况下,使用其支持默认值
未压缩版 jQuery.fn.extend({ serialize:function() { return jQuery.param(this.serializeArray()); }, serial ...
- hihoCoder #1032 : 最长回文子串 [ Manacher算法--O(n)回文子串算法 ]
传送门 #1032 : 最长回文子串 时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相 ...