form表单 获取与赋值

form表单中使用频繁的组件: 文本框、单选框、多选框、下拉框、文本域
form通过getValues()获取表单中所有name的值

通过setValues({key:values})给对应的name值进行赋值,其中key对应的name值

在给单选框和多选框赋值时,有几个疑惑的地方:
  1. fieldName和name 是否必须一致 ?

(fieldName删除对结果没什么影响,表单是通过name值去获取值得)

  2. name与子项的name 也一致是为何?
      (个人理解:

      通过getValues获取值时是key:value,单选框和多选框子项有多个,获取的value值时子项值的集合,而不能找到具体到对象

      此时要再进行一次key:value赋值,所以在代码中赋值时就出现了,value.key = {key: value.key},
                 举个例子:
                    var set_values = { radioName:0 };
                    此时set_values是单选框获取的值,是一个结果,要将其赋值必须先找到单选框对象,然后在定位到单选框子对象
                    所以setValues(set_values) 其实单选框对象,而没有具体到子对象,因此要再进行一次setValues
                    转换的格式就是:
                        var set_new_values = {}
                        var set_new_values.radioName = {
                            radioName: set_values.radioName
                        }

form.setValues(set_new_values);  
                    此时就可以定位到单选框子对象

多选框和单选框的逻辑是一直,区别只是单选框值只有一个,而多选框值时一个数组
  )

重复知识点: 

JSON.parse(jsonstr);      //可以将json字符串转换成json对象

JSON.stringify(jsonobj); //可以将json对象转换成json对符串

        Ext.onReady(function(){
                //Ext.Msg.alert("提示","hello world...")

                var ageStore = new Ext.data.Store({
                    fields: [‘text‘, ‘id‘],
                    data: [{"id":18,"text":"18"},{"id":19,"text":"19"},{"id":20,"text":"20"},{"id":21,"text":"21"}],
                    autoLoad: true
                });

                //1.创建一个form表单
                var formpanel = Ext.create("Ext.form.Panel",{
                    title:"form表单获取与赋值",
                    width:650,
                    height:250,
                    border:true,
                    renderTo:Ext.getBody(),
                    items:[
                        {
                            xtype:"textfield",
                            fieldLabel: "姓名",
                            width:200,
                            labelWidth:80,
                            name:"UserName"
                        }, {
                            xtype:"textfield",
                            fieldLabel: "手机号",
                            width:200,
                            labelWidth:80,
                            name:"Tel"
                        },{
                            xtype: "combo",
                            fieldLabel: "年龄",
                            fieldName: "UserAge",
                            name: "UserAge",
                            labelWidth: 80,
                            allowBlank: false,
                            blankText: "年龄不能为空",
                            autoFitErrors: true,
                            mode: ‘local‘,
                            msgTarget: "side",
                            store: ageStore,
                            displayField: "text",
                            valueField: "id"
                        }, {
                            xtype: "checkboxgroup",
                            fieldLabel: "上课时间",
                            labelWidth: 80,
                            width: 600,
                            name: "Weeks",
                            fieldName: "Weeks",
                            items: [{
                                boxLabel: "星期一",
                                name: "Weeks",
                                inputValue: 1,
                                checked: true
                            }, {
                                boxLabel: "星期二",
                                name: "Weeks",
                                inputValue: 2,
                            }, {
                                boxLabel: "星期三",
                                name: "Weeks",
                                inputValue: 3,
                            }, {
                                boxLabel: "星期四",
                                name: "Weeks",
                                inputValue: 4,
                            }, {
                                boxLabel: "星期五",
                                name: "Weeks",
                                inputValue: 5,
                            }, {
                                boxLabel: "星期六",
                                name: "Weeks",
                                inputValue: 6,
                            }, {
                                boxLabel: "星期日",
                                name: "Weeks",
                                inputValue: 0,
                            }]
                        }, {
                            xtype: "radiogroup",
                            width: 300,
                            labelWidth: 80,
                            fieldLabel: "上课/兼职",
                            fieldName: "RadioTimeSpanType",
                            name: "RadioTimeSpanType",
                            items: [
                                { boxLabel: "去上课", name: "RadioTimeSpanType", inputValue: 0, checked: true },
                                { boxLabel: "去兼职", name: "RadioTimeSpanType", inputValue: 1}
                            ], listeners: {
                                change: function(obj, newValue, oldValue, eOpts){
                                    // 单选事件
                                }
                            }
                        }
                    ],
                    buttons:[
                        {
                            text:"保存",
                            handler:function(){
                                var values = formpanel.getForm().getValues();
                                // JSON.parse(jsonstr); //可以将json字符串转换成json对象
                                // JSON.stringify(jsonobj); //可以将json对象转换成json对符串
                                document.getElementById("save_values").value = JSON.stringify(values);
                            }
                        }, {
                            text:"清空",
                            handler:function(){
                                formpanel.getForm().reset();
                            }
                        }, {
                            text:"自动填充",
                            handler:function(){
                                //获取填充的值
                                var values = document.getElementById("save_values").value ;
                                if(values)
                                {
                                    //注意,获取的值必须是json格式才可以
                                    var json_values = JSON.parse(values); //可以将json字符串转换成json对象
                                    //文本框和下拉框赋值就是key:value就可以
                                    //单选框和复选框有点不一样
                                    // 将key:value值转成key:{key:value}类型
                                    json_values.Weeks = {
                                        Weeks: json_values.Weeks
                                    }

                                    json_values.RadioTimeSpanType = {
                                        RadioTimeSpanType: json_values.RadioTimeSpanType
                                    }
                                    //赋值
                                    formpanel.getForm().setValues(json_values);
                                }
                            }
                        }
                    ]
                });
            });

//下面是body中显示值的div        <div>            form的值:<br/>            <textarea id="save_values" style="width:700px; height: 100px;"> </textarea>        </div>
时间: 2024-10-24 03:57:33

form表单 获取与赋值的相关文章

jQuery通过ajax获得后台json数据给form表单赋值

jQuery提供了load方法可以将数据加载到页面form表单中,但有时候我需要获取后台json数据中某个值时,又需要赋值整个form表单,load方法没有回调函数所以就不行了,如果用ajax调用的话,获得后台json数据后把json数据分析出来在一个个的赋值到form表单的每个文本框中,这样未免太过复杂和太多代码,所以我根据了一些大神的回答,总结了一个很好用的jQuery函数. jQuery-load方法调用: $('#form').form('load',URL); 页面表单: <span

serialize可以获取form表单里面的数值

serialize属性 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script src="../jquery-1.12.2.js"></script> 7 </head> 8 <

ubuntu 下CGI c语言 获取form表单的数据

前面文章:使用cgi c 写了一个helloworld 这次 主要使用CGI c语言 获取form表单的数据 1 login.c [email protected]:/usr/lib/cgi-bin$ cat login.c #include<stdio.h> #include<stdlib.h> #include <string.h> int main(){ int i,len=0; char poststr[100]; char m[10],n[10]; char

[js开源组件开发]query组件,获取url参数和form表单json格式

query组件,获取url参数和form表单json格式 距离上次的组件[js开源组件开发]ajax分页组件一转眼过去了近二十天,或许我一周一组件的承诺有了质疑声,但其实我一直在做,只是没人看到……,最近项目紧,几个小组,只有我一个前端,公司对前端的定位不清晰,导致前端人员过少的情况.所以还得促进公司前端人员增长,不然再这么玩下去,我要被玩死了,一个公司,不可能靠一个资深前端来支撑二三十个开发的需求,这是不现实的,特别是现在的页面不再是复制粘贴的前况下.我默默耕芸,所以这次我整理了这一个月里所有

ajax无刷新方式对form表单进行赋值!

/** * 把json数据填充到from表单中 */ <form id="editForm" action="user.php"> 用户名:<input type="text" name="usrname" /><br/> 地址:<input type="text" name="address" /><br/> 性别:<i

获取form表单默认提交的返回值

1.经常用form表单提交的小伙伴有没有发现,form表单默认的提交是没有返回值的,而且默认提交成功之后是跳转,跳转的action的路径,下面写一下默认的提交如何获取到form表单的返回值json,并且阻止默认的跳转动作. 页面结构见下面: <form target="form" action="" enctype="multipart/form-data" method="post"> <input typ

springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据

springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据 表单html: <form class="form-horizontal form-material" th:object="${user}" th:action="@{/user/updateOneUserInfo}" method="post"> <input type="hidden

node服务器获取form表单

搭建好服务器后 (前言,本文只是介绍form表单直接提供给 本页面数据,即在不刷新页面的前提下更改数据) 在public里面添加index.html 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script src="node_mo

不通过getElementByName实现获取表单数据 (document.form表单的name值.input输入框的name值)

function update() { //document.form表单的name值.input输入框的name值 var username = document.form1.username; var mobile = document.form1.mobile; var qq = document.form1.qq; } <form name="form1" method="post" action=""> <table