ExtJS4.2學習(17)表單基本輸入控件Ext.form.Field

QQ截圖20131211232738.jpg

Ext.form.Field是全部表單輸入控件的基類,其餘的輸入控件都是基於Ext.form.Field擴展得來的。 Ext.form.Field中定義了輸入控件通用的屬性和功能函數,這些通用的屬性和功能函數大體分爲3大類:頁面顯示樣式、控件參數配置和數據有效性檢驗。咱們先來看看錶單輸入控件可使用的校驗顯示方式。默認狀況下,這些輸入控件會監聽blur事件,若是數據校驗失敗,就會根據msgTarget中的設置顯示錯誤信息。一般,msgTarget會被設置爲qtip,即便用QuickTip顯示錯誤信息,也能夠將msgTarget設置爲title、side、under中的一種,這樣錯誤信息就會以指定的方式顯示。由於全部的輸入控件都繼承自 Ext.form.Field,因此咱們能夠爲任何一個表單輸入控件進行這些設置,改變它們的錯誤信息顯示方式。具體代碼以下:javascript

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello Extjs4.2</title>
<link href="../../ExtJS4.2/resources/ext-theme-neptune/ext-theme-neptune-all.css" rel="stylesheet">
<script src="../../ExtJS4.2/ext-all.js"></script>
<script src="../../ExtJS4.2/locale/ext-lang-zh_CN.js"></script>
<script type="text/javascript">
Ext.onReady(function(){
                                                       
    // HtmlEditor須要這個
    Ext.tip.QuickTipManager.init();
                                                       
    var field1 = new Ext.form.TextField({
        fieldLabel: 'qtip錯誤顯示方式',
        msgTarget: 'qtip',
        allowBlank: false
    });
    var field2 = new Ext.form.TextField({
        fieldLabel: 'title錯誤顯示方式',
        msgTarget: 'title',
        allowBlank: false
    });
    var field3 = new Ext.form.TextField({
        fieldLabel: 'side錯誤顯示方式',
        msgTarget: 'side',
        allowBlank: false
    });
    var field4 = new Ext.form.TextField({
        fieldLabel: 'under錯誤顯示方式',
        msgTarget: 'under',
        allowBlank: false
    });
                                                       
    var form = new Ext.form.FormPanel({
        title: '表單輸入控件演示',
        frame: true,
        fieldDefaults:{
            labelAlign:'right', //文本對齊方式
            labelWidth:150
        },
        items: [field1, field2, field3, field4],
        renderTo: 'form'
    });
                                                       
                                                       
    form.getForm().isValid();
});
</script>
</head>
<body>
<h1>個人ExtJS4.2學習之路</h1>
<hr />
做者:束洋洋
開始日期:2013年12月11日21:01:19
<h2>深刻淺出ExtJS之表單基本輸入控件Ext.form.Field</h2>
<div id="form"></div>
</body>
</html>

qtip方式:默認顯示方式,顯示爲懸浮框提示錯誤文字;css

title方式:相似HTML超連接中設置的title;html

side方式:輸入框後出現錯誤圖標,鼠標放上去會顯示錯誤信息;java

under方式:文本框下方出現錯誤提示圖標和文字.ide

接下來會對上節中出現的控件一一做介紹,本篇先說說文本輸入控件(Ext.form.TextField)、多行文本輸入控件(Ext.form.TextArea)和日期輸入控件(Ext.form.DateField)
函數

QQ截圖20131211232738.jpg

代碼以下,相關屬性已經在註釋中寫明。學習

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Hello Extjs4.2</title> 
<link href="../../ExtJS4.2/resources/ext-theme-neptune/ext-theme-neptune-all.css" rel="stylesheet"> 
<script src="../../ExtJS4.2/ext-all.js"></script> 
<script src="../../ExtJS4.2/locale/ext-lang-zh_CN.js"></script> 
<script type="text/javascript"> 
Ext.onReady(function(){ 
             
    var field = new Ext.form.TextField({ 
        fieldLabel: 'empty', //輸入控件前顯示名稱 
        allowBlank: false, //是否容許爲空 
        emptyText:'空', //沒有輸入任何內容提示文字 
        maxLength:50, //輸入最大字符串長度 
        minLength:10 //輸入最小字符串長度 
    }); 
                 
    var fieldTextArea = new Ext.form.TextArea({ 
        width:200, 
        grow:true, //會根據輸入內容自動修改自身高度 
        preventScrollbars:true, //防止出現滾動條,若是內容超出顯示範圍就會自動隱藏 
        fieldLabel:'empty', 
        allowBlank:false, 
        emptyText:'空', 
        maxLength:50, 
        minLength:10 
    }); 
                 
    var fieldDate = new Ext.form.DateField({ 
        fieldLabel:'日期', 
        emptyText:'請選擇', 
        format:'Y-m-d', 
        disabledDays:[0,6] //禁止選擇的日期 
    });  
             
    var form = new Ext.form.FormPanel({ 
        title: '表單輸入控件演示', 
        width:500, 
        frame: true, 
        items: [field,fieldTextArea,fieldDate], 
        renderTo: 'form' 
    }); 
}); 
</script> 
</head> 
<body> 
<h1>個人ExtJS4.2學習之路</h1> 
<hr /> 
做者:束洋洋 
開始日期:2013年12月11日21:13:50 
<h2>深刻淺出ExtJS之文本輸入控件Ext.form.TextField</h2> 
<div id="form"></div> 
</body> 
</html>

連載中,請你們繼續關注!本文出自個人我的網站思考者日記網網站

相關文章
相關標籤/搜索