zoukankan      html  css  js  c++  java
  • form表单数据的提交方式

    前言:

      在之前的项目中也使用过表单,但是对其的几种数据提交方式还是模棱两可,今天特意的研究了下并在这里记录下来从而加深对该知识点的理解。

    1、通过form的onsubmit事件来实现  

        <form  method="post" action="JsSystemFunction.aspx" onsubmit="return vali()" >
            <div>姓名:<input name="usrerName" /></div>
            <div>年龄:<input name="age" /></div>
            <input type="submit" value="提交"/>
        </form>
    
        <div>
            <div>姓名:<%:HttpContext.Current.Request.Form["usrerName"] %></div>
            <div>年龄:<%:HttpContext.Current.Request.Form["age"] %></div>
        </div>

    说明:

    (1)、form标签的属性介绍

       method:提交的方式 post get等

       active:提交的地址

    (2)onsubmit事件

    当点击submit组件时会触发form的onsubmit事件,如果vali()函数返回true时将提交表单否则不提交。在提交表单之前就可以在vali()里面做一些验证,验证通过就返回true,然后提交表单。

    效果图如下:

      

    2、通过input类型为submit的onClick事件来实现

      <form  method="post" action="JsSystemFunction.aspx">
            <div>姓名:<input name="usrerName" /></div>
            <div>年龄:<input name="age" /></div>
            <input type="submit" value="提交" onclick="return vali"/>
        </form>
    
        <div>
            <div>姓名:<%:HttpContext.Current.Request.Form["usrerName"] %></div>
            <div>年龄:<%:HttpContext.Current.Request.Form["age"] %></div>
        </div>

      

    3、通过button组件的onClick事件,手动提交

      以上两种方式都是通过submit来自动触发提交,当不使用submit控件时,就需要手动的提交。以下做出说明:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JsSystemFunction.aspx.cs" Inherits="UI.JsSystemFunction" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>
    
        </title>
        <script type="text/javascript">   
            window.onload = function () {
                var btn = document.getElementById("sub");
                btn.onclick = function ()
                {
                    var form = document.getElementById("form");
                    form.submit();
                };
            }
    
        </script>
    </head>
    <body>    
        <form id="form" method="post" action="JsSystemFunction.aspx">
            <div>姓名:<input name="usrerName" /></div>
            <div>年龄:<input name="age" /></div>
            <input  id="sub" type="button" value="提交" />
        </form>
    
        <div>
            <div>姓名:<%:HttpContext.Current.Request.Form["usrerName"] %></div>
            <div>年龄:<%:HttpContext.Current.Request.Form["age"] %></div>
        </div>
    </body>
    </html>

    说明:

      当单击button按钮时触发其onclick事件,通过form标签的submit()提交表单数据。这里说要注意的是,相比前面的两种方式,这种方式只要触发了就会提交。

    4、异步提交表单数据

        常规的表单提交方式会使整个浏览器刷新并重新加载响应,使用ajax方式来异步提交表单数据。然后在使用ajax方式提交表单数据时,通常需要逐个的获取表单元素的值,添加到参数列表中。

    serialize()方法能将表单内容序列化成一个键值对的字符串,语法格式如下:

    var data=$("form").serialize();

    实例:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JsSystemFunction.aspx.cs" Inherits="UI.JsSystemFunction" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>
    
        </title>
        <script src="Scripts/jquery-1.7.1.min.js"></script>
        <script type="text/javascript">   
            $(document).ready(function () {  
    
                $("#sub").click(function () {
                    $.post("FAjax.ashx", $("form").serialize());
                });
            });
    
        </script>
    </head>
    <body>    
        <form id="form">
            <div>姓名:<input name="usrerName" /></div>
            <div>年龄:<input name="age" /></div>
            <input  id="sub" type="button" value="提交" />
        </form>    
    </body>
    </html>

    serializeArray()方法将表单序列化为一个数组,每个数组元素为一个json对象,对应着表单里面的每一个组件。

    注:只序列化name属性有值的组件(button 除外)

    实例:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JsSystemFunction.aspx.cs" Inherits="UI.JsSystemFunction" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>
    
        </title>
        <script src="Scripts/jquery-1.7.1.min.js"></script>
        <script type="text/javascript">   
            $(document).ready(function () {           
                
                $("#sub").click(function () {
                    var data = $("form").serializeArray();
                    $.post("FAjax.ashx",{username:data[0].value,age:data[1].value})
                   });
            });
    
        </script>
    </head>
    <body>    
        <form id="form">
            <div>姓名:<input name="userName" /></div>
            <div>年龄:<input name="age" /></div>
            <input  id="sub" type="button" value="提交" />
        </form>    
    </body>
    </html>
  • 相关阅读:
    MySQL 管理
    CSS font-style 属性
    HTML DOM Input Search value 属性
    tan (Numerics) – C 中文开发手册
    Java8中的Java.util.StringJoiner
    ASP ShortPath 属性
    java.lang.NoClassDefFoundError的解决方案
    HTML DOM td , th 对象
    HTML colgroup char 属性
    Java 之 递归&递归操作文件
  • 原文地址:https://www.cnblogs.com/YanYongSong/p/5333360.html
Copyright © 2011-2022 走看看