`

JS控制表单form的提交

阅读更多

 

<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;   
    }
}

 

分享到:
评论
1 楼 p476462534 2014-01-08  
      

相关推荐

    JS提交form表单实例分析

    本文实例讲述了JS提交form表单。分享给大家供大家参考,具体如下: 一、javascript 页面加裁时自动提交表单: Form表单: &lt;form method="post" id="myform" action="a.php"&gt; &lt;input type="submit" value=...

    js 提交form表单和设置form表单请求路径的实现方法

    如下所示: form表单ID:postform 设置表单请求url document.postform.action = SaveReturnInfo...以上就是小编为大家带来的js 提交form表单和设置form表单请求路径的实现方法全部内容了,希望大家多多支持软件开发网~

    防止Layui form表单重复提交的实现方法

    在上述函数中,如果需要在禁止表单默认提交行为的同时,与服务器进行数据交互,则可以使用JavaScript的XMLHttpRequest或者现代的Fetch API来异步提交表单数据。使用AJAX提交表单数据的好处是,可以避免页面刷新,...

    javascript方式防止表单重复提交

    JavaScript作为客户端脚本语言,可以通过多种策略来防止用户意外或恶意地多次提交表单。以下是一些关键的知识点: 1. **禁用提交按钮**:最简单的预防方法是在用户点击提交按钮后立即将其禁用。这可以通过监听`...

    js提交form表单,并传递参数的实现方法

    //增加的函数 begin function queryFun(){ var type = $("#artType").val(); var hasInputed = "1";//表示输入了要搜索 的信息 if($("#query").val()=="选手姓名/编号"){ //表示没有输入要搜索的值 ...

    使用jQuery.form插件,实现完美的表单异步提交

    jQuery.form插件正是为了满足这种需求而设计的,它扩展了jQuery库,使表单异步提交变得更加简单、灵活且强大。本文将详细介绍如何使用jQuery.form插件,实现完美的表单异步提交。 首先,我们需要了解jQuery.form...

    js的form表单提交url传参数(包含+等特殊字符)的两种解决方法

    这种方法通过JavaScript动态创建一个form元素,将需要提交的参数值编码后加入到表单的action属性中,然后模拟form的提交行为。示例代码如下: ```javascript linkredwin=function(A,B,C,D,E,F,G){ var formredwin=...

    layui form表单提交之后重新加载数据表格的方法

    在AJAX技术广泛应用的今天,通常我们会用JavaScript来处理表单的提交,从而无需重新加载页面。通过返回`false`,我们可以让表单提交时不会导致页面跳转,而是执行我们自定义的AJAX请求来与服务器交互,并刷新表格。 ...

    JavaScript在form表单中使用button按钮实现submit提交方法

     在form表单提交中,使用button来间接完成submit的提交更为灵活。下面是实现方法: 使用button按钮实现submit提交,需要在button标签中的使用onclick方法,然后在JavaScript中实现具体,代码如下: &lt;head&gt; ...

    javascript弹出层表单提交代码

    JavaScript弹出层表单提交是一种常见的用户交互设计,它允许用户在不离开当前页面的情况下填写并提交表单数据。这种技术常用于网站的登录、注册、评论或编辑功能,提供了良好的用户体验,因为用户无需跳转到新页面...

    使用JQuery实现从JSON对象转换为form提交数据

    本篇文章将深入探讨如何利用jQuery从JSON对象转换为form提交数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和...

    form提交时传递额外的参数几种常见方法

    本文将详细介绍在form提交时传递额外参数的几种常见方法,并分析各自的优缺点,供开发者根据实际需求进行选择。 1. 在表单里使用隐藏的input元素 这是最简单也是最直接的方法。可以在表单HTML代码中直接添加一个...

    JavaScript动态创建form表单并提交的实现方法

    在使用JavaScript动态创建表单时,还需要考虑到跨域请求、安全验证、数据验证等其他因素,以保证表单提交的安全性和可靠性。这些内容虽然没有在给定的文档中明确提及,但在实际开发中都是非常重要的考虑点。

    ajaxForm异步提交表单(含图片)

    AjaxForm是jQuery Form Plugin的一个功能,用于实现异步表单提交,特别是处理包含图片在内的复杂数据。本文将深入探讨如何使用ajaxForm进行异步表单提交。 首先,让我们了解什么是Ajax。AJAX(Asynchronous ...

    Jquery提交表单 Form.js官方插件介绍

    Jquery提交表单 Form

    jquery_form_js 表单提交自定义源码

    总结,jQuery Form插件通过`jquery.form.js`提供的功能,让表单提交变得简单且灵活。无论是简单的数据提交,还是复杂的文件上传,都能轻松应对。理解并掌握其源码,能帮助开发者更好地利用这个工具,提升项目开发...

    EXT异步提交FORM表单

    EXT框架(通常指的是Ext JS)作为一种成熟且功能丰富的JavaScript库,提供了强大的UI组件和便捷的数据处理方法,其中就包括了异步提交FORM表单的功能。 #### 二、EXT异步提交FORM表单的基本原理与实现 ##### 2.1 ...

    JS验证页面form表单数据,齐全

    在form表单上添加一个提交事件调用验证数据方法 &lt;form name="listform" action="resume-doAdd" method="post" onsubmit="return Validator.Validate(this,3);"&gt; 请输入正确的手机号!" requiremsg="移动电话不能为...

    批量提交表单JS

    本资源包含了一个名为`jquery.form.js`的文件,它是一个基于jQuery库的插件,用于简化表单的异步提交,包括批量提交。 批量提交表单JS的核心概念是利用JavaScript对多个表单数据进行处理,然后一次性发送到服务器。...

    jquery-form 异步提交表单

    为了解决这个问题,jQuery Form插件应运而生,它允许我们实现异步(Ajax)表单提交,提高页面的响应性和用户体验。 ### jQuery Form 插件介绍 jQuery Form插件是基于jQuery的一个强大工具,它可以轻松地将任何HTML...

Global site tag (gtag.js) - Google Analytics