<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"  href="/xslt/final.xslt"?><html>
  <head>
    <title>9.1 ExtJS: Форма. Простые элементы</title>
    <meta name="css" content="/doc/ext/ext_examples.css"/>
    <meta name="js" content="/js/EXT4/ext-all.js;/doc/ext/700.js"/>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="id" content="57"/>
    <link rel="stylesheet" type="text/css" href="/doc/ext/ext_examples.css"/>
    <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml"/>
  </head>
  <body>
    <div class="main">
      <div class="wrap">
        <div class="L">
          <h1><a href="/">..</a> / 9.1 ExtJS: Форма. Простые элементы</h1>
          <ol class="tags big">
            <li>
              <a href="/ExtJS-4">ExtJS-4</a>
            </li>
          </ol>
          <div class="myContent"><p>
  Лучше всего смотреть как работают элементы форм в <u class="external" title="docs.sencha.com/ext-js/4-0/#%21/api">официальной
  документации</u>. Здесь я просто свел все примеры на одну
  страницу и по необходимости снабдил комментариями. Чуть более
  сложные компоненты я рассмотрю дальше.
</p>
<h2>
   1. Текстовое поле Ext.form.TextField
</h2>
<p>
  Поскольку здесь очень много мелких примеров, я буду рендерить их
  не в окно, как это делал ранее, а непосредственно на эту
  страницу. Но для начала рассмотрю как все-таки создавать форму c
  одним единственным input[@type='text']<br/>
</p>
<h2>
   1.1 Создание самой формы
</h2>
<pre class="brush: js">
form= new Ext.FormPanel({ // инициализация панели с формой.
    renderTo: 'ex0', // результат поместить в контейнер с ID='ex0'
    items:[…]           // массив элементов формы или их конфигураций
});
</pre>
<p>
  Как уже говорил раньше, ExtJS позвоялет создавать компоненты
  несколькими способами. В примерах я использовал два основных
  варианта. И оба сейчас приведу на примере создания текстового
  окна.
</p>
<h3>
   1.2 
</h3>
<pre class="brush: js">
var name = new Ext.form.TextField({
    fieldLabel:'Фамилия И.О.',
    name:'name',
    value:'Тынгылчав И.',
    id:ex1
});
form= new Ext.FormPanel({ // инициализация панели с формой.
    renderTo: 'ex0', // результат поместить в контейнер с ID='ex0'
    items:[name]           // массив элементов формы или их конфигураций
});
</pre>
<p>
  Этот код эквивалентен следующему:
</p>
<pre class="brush: js">
new Ext.FormPanel({ // инициализация панели с формой.
    renderTo: 'ex0', // результат поместить в контейнер с ID='ex0'
    items:[{              // массив элементов формы или их конфигураций
        xtype:'textfield',
        fieldLabel:'Фамилия И.О.',
        name:'name',
        value:'Тынгылчав И.'
    }]
});
</pre>
<div id="ex0"/>
<p>
  Дальше я буду рендерить (вставлять) элементы форм непосредственно
  в страничку и указывать необходимые данные
</p>
<h2>
   1. Текстовое поле <u class="external" title="docs.sencha.com/ext-js/4-0/#%21/api/Ext.form.field.Text">Ext.form.TextField</u>,
  xtype: textfield
</h2>
<div id="ex1"/>
<pre class="brush: js">
 new Ext.form.TextField({
            fieldLabel:'Фамилия И.О.',  // текст для label
            name:'fio',                 // параметр name для input
            value:'Тынгылчав И.',       // дефотлное значение
            renderTo: 'ex1' // результат поместить в контейнер с ID='ex1'
    });
</pre>
<p>
  То же самое поле но задизабленное (засеренное, недоступное)
</p>
<div id="ex2"/>
<pre class="brush: js">
new Ext.form.TextField({
            fieldLabel:'должность',
            name:'position',
            value:'лаборант',
            renderTo: 'ex2',
            disabled: true
    });
</pre>
<p>
  То же самое поле но с размещенной в нем подсказкой, которая
  появляется когда поле пустое.
</p>
<div id="ex3"/>
<pre class="brush: js">
new Ext.form.TextField({
            fieldLabel:'E-mail',
            name:'mail',
            emptyText:'Введите сюда любой адрес электронной почты',
            renderTo: 'ex3',
            width:500
    });
</pre>
<h2>
   4. <u class="external" title="docs.sencha.com/ext-js/4-0/#%21/api/Ext.form.field.TextArea">
   Ext.form.field.TextArea</u> xtype: textarea
</h2>
<div id="ex4"/>
<pre class="brush: js">
new Ext.form.field.TextArea({
        renderTo: 'ex4',
        name: 'message',
        fieldLabel: 'Биография',
        width:500
    });

</pre>
<h2>
  5 Поле загрузки файлов <u class="external" title="docs.sencha.com/ext-js/4-0/#%21/api/Ext.form.field.File">Ext.form.field.File</u>,
  xtype: filefield
</h2>
<div id="ex5"/>
<pre class="brush: js">
new Ext.form.field.File({
        renderTo: 'ex5',
        name: 'photo',
        fieldLabel: 'Фото 3x6',
        labelWidth: 100,
        buttonText: 'Select Photo…'

    });
</pre>
<h2>
  6 Поле ввода чисел. <u class="external" title="docs.sencha.com/ext-js/4-0/#%21/api/Ext.form.field.Number">
   Ext.form.field.Number</u>, xtype: numberfield
</h2>
<div id="ex6"/>
<pre class="brush: js">
new Ext.form.field.Number({
        renderTo: 'ex6',
        name: 'age',
        fieldLabel: 'Возраст',
        value: 33,
        maxValue: 65,
        minValue: 16
    });
</pre>
<h2>
  8 Просто текст. <u class="external" title="docs.sencha.com/ext-js/4-0/#%21/api/Ext.form.field.Display">
   Ext.form.field.Display</u>, xtype: displayfield
</h2>
<div id="ex8"/>
<p>
  Здесь после Label выводится обычный текст. При необходимости этот
  текст можно украсить через CSS или HTML
</p>
<pre class="brush: js">
new Ext.form.field.Display({
        renderTo: 'ex8',
        fieldLabel: 'Просто Текст',
        name: 'any-text',
        value: 'просто какой-то текст'
        //  fieldCls :'red' - задать CSS-класс
        //  value: '<em>текст курсивом</em>' - вывести HTML
    });
</pre>
<h2>
   9. Время. <u class="external" title="docs.sencha.com/ext-js/4-0/#%21/api/Ext.form.field.Time">Ext.form.field.Time</u>
  xtype: timefield
</h2>
<p>
  В этом компоненте - гадость. По умолчанию стоит американский
  формат времени («два часа после обеда»).
</p>
<div id="ex9"/>
<pre class="brush: js">
new Ext.form.field.Time({
        renderTo: 'ex9',
        name: 'time',
        format: 'H:i', //  формат времени: 24 часа в сутках.
        fieldLabel: 'Время',
        minValue: '8:00',
        maxValue: '23:00',
        value:«15:00»,
        increment: 30,
        anchor: '100%'

    });
</pre>
<h2>
   9. Дата <u class="external" title="www.objis.com/formationextjs/lib/extjs-4.0.0/docs/api/Ext.form.field.Date.html">
   Ext.form.field.Date</u>, xtype: datefield
</h2>
<div id="qqq"/>
<pre class="brush: js">
   new Ext.form.field.Date({
      new Ext.form.field.Date({
        renderTo: 'qqq',
        xtype: 'datefield',
        anchor: '100%',
        fieldLabel: 'From',
        name: 'from_date',
        maxValue: new Date()  // limited to the current date or prior

    });
    });

</pre>
<h2>
   11. Скрытое поле <a href="Ext.form.field.Hidden">Ext.form.field.Hidden</a>, xtype:
  hiddenfield, hidden
</h2>
<div style="height:25px;">
  <div id="ex111" style="background:#eee;height:20px;width:200px;float:left;"/>&lt;-
  поле отрендерилось сюда
</div>
<pre class="brush: js">
// &lt;input type=«hidden» name=«hidden_field_1» &gt; value=«value from hidden» /&gt;
new Ext.form.field.Hidden({
        renderTo: 'ex111',
        xtype: 'hiddenfield',
        name: 'hidden_field_1',
        value: 'value from hidden field'
    });

</pre>
<h2>
   12. WYSIWYG <u class="external" title="ext/ext4/docs/index.html#/api/Ext.form.field.HtmlEditor">Ext.form.field.HtmlEditor</u>
</h2>
<p>
  Унылое говно, которое наверное проще выкинуть, чем допиливать.
  Впрочем, судя по сообщениям в <u class="external" title="www.sencha.com/forum/showthread.php?96180-WYMeditor-ExtJS-integration">
  форумах</u> умельцы так и делают. Код приведу, но вставлять на
  стр. Не буду. Оно того не стоит.<br/>
</p>
<div id="ex12"/>
<pre class="brush: js">
 Ext.create('Ext.form.HtmlEditor', {
        width: 580,
        height: 250,
        renderTo: 'ex2'
    });
</pre>
<div id="exHIDDEN"/>
<h2>
  Далее
</h2>
<ol>
  <li>
    <a href="/58.htm">Form. Часть 2 - составные компоненты</a>
  </li>
  <li>
    <a href="/59.htm">Form. Часть 3 - Submit</a>
  </li>
  <li>
    <a href="/60.htm">Деревья в ExtJS. Часть 1. Инициализация</a>
  </li>
</ol></div>
          <ol class="tags big">
            <li class="date">2011-12-04</li>
            <li>
              <a href="/ExtJS-4">ExtJS-4</a>
            </li>
          </ol>
          <ol class="see">
            <li>
              <a href="#"><span>docs.sencha.com/ext-js/4-0/#!/api</span> - <b>Form API на официальном сайте</b></a>
            </li>
            <li>
              <a href="#"><span>www.quizzpot.com/2009/10/ext-js-basic-forms-and-fields/</span> - <b>quizzpot.com ExtJS basic forms and fields</b></a>
            </li>
          </ol>
          <ul class="comment"/>
        </div>
      </div>
      <div class="R">
        <a href="/" title="&#x41D;&#x430; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x443;&#x44E;"/>
      </div>
    </div>
    <div id="li"/>
  </body>
</html>

