zoukankan      html  css  js  c++  java
  • 无废话ExtJs 入门教程十[单选组:RadioGroup、复选组:CheckBoxGroup]

    继上一节内容,我们在表单里加了个一个单选组,一个复选组:

    1.代码如下:

      1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      2 <html xmlns="http://www.w3.org/1999/xhtml">
      3 <head>
      4     <title></title>
      5     <!--ExtJs框架开始-->
      6     <script type="text/javascript" src="/Ext/adapter/ext/ext-base.js"></script>
      7     <script type="text/javascript" src="/Ext/ext-all.js"></script>
      8     <script src="/Ext/src/locale/ext-lang-zh_CN.js" type="text/javascript"></script>
      9     <link rel="stylesheet" type="text/css" href="/Ext/resources/css/ext-all.css" />
     10     <!--ExtJs框架结束-->
     11     <style type="text/css">
     12         .x-form-unit
     13         {
     14             height: 22px;
     15             line-height: 22px;
     16             padding-left: 2px;
     17             display: inline-block;
     18             display: inline;
     19         }
     20     </style>
     21     <script type="text/javascript">
     22 
     23         Ext.override(Ext.form.TextField, {
     24             unitText: '',
     25             onRender: function (ct, position) {
     26                 Ext.form.TextField.superclass.onRender.call(this, ct, position);
     27                 // 如果单位字符串已定义 则在后方增加单位对象   
     28                 if (this.unitText != '') {
     29                     this.unitEl = ct.createChild({
     30                         tag: 'div',
     31                         html: this.unitText
     32                     });
     33                     this.unitEl.addClass('x-form-unit');
     34                     // 增加单位名称的同时 按单位名称大小减少文本框的长度 初步考虑了中英文混排 未考虑为负的情况   
     35                     this.width = this.width - (this.unitText.replace(/[^\x00-\xff]/g, "xx").length * 6 + 2);
     36                     // 同时修改错误提示图标的位置   
     37                     this.alignErrorIcon = function () {
     38                         this.errorIcon.alignTo(this.unitEl, 'tl-tr', [2, 0]);
     39                     };
     40                 }
     41             }
     42         });
     43 
     44         Ext.onReady(function () {
     45             //初始化标签中的Ext:Qtip属性。
     46             Ext.QuickTips.init();
     47             Ext.form.Field.prototype.msgTarget = 'side';
     48 
     49             //提交按钮处理方法
     50             var btnsubmitclick = function () {
     51                 Ext.MessageBox.alert('提示', '你点了确定按钮!');
     52             }
     53             //重置按钮"点击时"处理方法
     54             var btnresetclick = function () {
     55                 Ext.MessageBox.alert('提示', '你点了重置按钮!');
     56             }
     57             //重置按钮"鼠标悬停"处理方法
     58             var btnresetmouseover = function () {
     59                 Ext.MessageBox.alert('提示', '你鼠标悬停在重置按钮之上!');
     60             }
     61             //提交按钮
     62             var btnsubmit = new Ext.Button({
     63                 text: '提交',
     64                 handler: btnsubmitclick
     65             });
     66             //重置按钮
     67             var btnreset = new Ext.Button({
     68                 text: '重置',
     69                 listeners: {
     70                     'mouseover': btnresetmouseover,
     71                     'click': btnresetclick
     72                 }
     73             });
     74             //用户名input
     75             var txtusername = new Ext.form.TextField({
     76                  140,
     77                 allowBlank: false,
     78                 maxLength: 20,
     79                 name: 'username',
     80                 fieldLabel: '用户名称',
     81                 blankText: '请输入用户名',
     82                 maxLengthText: '用户名不能超过20个字符'
     83             });
     84             //密码input
     85             var txtpassword = new Ext.form.TextField({
     86                  140,
     87                 allowBlank: false,
     88                 maxLength: 20,
     89                 inputType: 'password',
     90                 name: 'password',
     91                 fieldLabel: '密码',
     92                 blankText: '请输入密码',
     93                 maxLengthText: '密码不能超过20个字符'
     94             });
     95             var numberfield = new Ext.form.NumberField({
     96                 fieldLabel: '身高',
     97                  80,
     98                 decimalPrecision: 1,
     99                 minValue: 0.01,
    100                 maxValue: 200,
    101                 unitText: ' cm',
    102                 allowBlank: false,
    103                 blankText: '请输入身高'
    104             });
    105 
    106             var hiddenfield = new Ext.form.Hidden({
    107                 name: 'userid',
    108                 value: '1'
    109             });
    110 
    111             var datefield = new Ext.form.DateField({
    112                 fieldLabel: '出生日期',
    113                 format: 'Y-m-d',
    114                 editable: false,
    115                 allowBlank: false,
    116                 blankText: '请选择日期'
    117             });
    118             //----------------------单选组开始----------------------//
    119             var radiogroup = new Ext.form.RadioGroup({
    120                 fieldLabel: '性别',
    121                  100,
    122                 items: [{
    123                     name: 'sex',
    124                     inputValue: '0',
    125                     boxLabel: '男',
    126                     checked: true
    127                 }, {
    128                     name: 'sex',
    129                     inputValue: '1',
    130                     boxLabel: '女'
    131                 }]
    132             });
    133             //获取单选组的值
    134             radiogroup.on('change', function (rdgroup, checked) {
    135                 alert(checked.getRawValue());
    136             });
    137             //----------------------单选组结束----------------------//
    138             //----------------------复选组开始----------------------//
    139             var checkboxgroup = new Ext.form.CheckboxGroup({
    140                 fieldLabel: '兴趣爱好',
    141                  170,
    142                 items: [{
    143                     boxLabel: '看书',
    144                     inputValue: '0'
    145                 }, {
    146                     boxLabel: '上网',
    147                     inputValue: '1'
    148                 }, {
    149                     boxLabel: '听音乐',
    150                     inputValue: '2'
    151                 }]
    152             });
    153             //获取复选组的值
    154             checkboxgroup.on('change', function (cbgroup, checked) {
    155                 for (var i = 0; i < checked.length; i++) {
    156                     alert(checked[i].getRawValue());
    157                 }
    158             });
    159             //----------------------复选组结束----------------------//
    160             //表单
    161             var form = new Ext.form.FormPanel({
    162                 frame: true,
    163                 title: '表单标题',
    164                 style: 'margin:10px',
    165                 html: '<div style="padding:10px">这里表单内容</div>',
    166                 items: [txtusername, txtpassword, numberfield, hiddenfield, datefield, radiogroup, checkboxgroup],
    167                 buttons: [btnsubmit, btnreset]
    168             });
    169             //窗体
    170             var win = new Ext.Window({
    171                 title: '窗口',
    172                  476,
    173                 height: 374,
    174                 html: '<div>这里是窗体内容</div>',
    175                 resizable: true,
    176                 modal: true,
    177                 closable: true,
    178                 maximizable: true,
    179                 minimizable: true,
    180                 buttonAlign: 'center',
    181                 items: form
    182             });
    183             win.show();
    184         });
    185     </script>
    186 </head>
    187 <body>
    188     <!--
    189 说明:
    190 (1)var radiogroup = new Ext.form.RadioGroup():创建一个新的单选按钮组。
    191 (2)name: 'sex':单选按钮组是按照 name 属性来区分的,同一组中的单选按钮才能单选,
    192         如果name属性设置错误,该按钮将会被认为是其他组。
    193 (3)inputValue: '0':选择框的值。
    194 (4)boxLabel: '男':选择框后面的文字说明。
    195 (5)checked.getRawValue():获取选择框的选中值,由于单选框只有一个选中值,可以直接获取,
    196         而复选框可以多选,所以要循环取出。
    197 -->
    198 </body>
    199 </html>

    2.效果如下:

  • 相关阅读:
    Leetcode 15 3Sum
    Leetcode 383 Ransom Note
    用i个点组成高度为不超过j的二叉树的数量。
    配对问题 小于10 1.3.5
    字符矩阵的旋转 镜面对称 1.2.2
    字符串统计 连续的某个字符的数量 1.1.4
    USACO twofive 没理解
    1002 All Roads Lead to Rome
    USACO 5.5.1 求矩形并的周长
    USACO 5.5.2 字符串的最小表示法
  • 原文地址:https://www.cnblogs.com/iamlilinfeng/p/2559234.html
Copyright © 2011-2022 走看看