| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103 |
- <sect2 id="zend.dojo.form.elements">
- <title>Dijit-Specific 表单元素</title>
- <para>
- 每个被提供视图助手的 dijit 表单都有相应的<code>Zend_Form</code>元素。它们都有下列方法来处理 dijit 参数:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setDijitParam($key, $value)</code>: 设置一单个的 dijit 参数。
- 如果 dijit 参数已经存在,则覆盖它。
- </para></listitem>
- <listitem><para>
- <code>setDijitParams(array $params)</code>: 一次设置若干 dijit 参数。
- 同样,已经存在的参数被覆盖。
- </para></listitem>
- <listitem><para>
- <code>hasDijitParam($key)</code>: 是否有个给定的 dijit 参数被定义和存在。
- </para></listitem>
- <listitem><para>
- <code>getDijitParam($key)</code>: 获取给定 $key 的 dijit 参数,如果不可用,则返回 null。
- </para></listitem>
- <listitem><para>
- <code>getDijitParams()</code>: 获取所有的 dijit 参数。
- </para></listitem>
- <listitem><para>
- <code>removeDijitParam($key)</code>: 删除给定 $key 的 dijit 参数。
- </para></listitem>
- <listitem><para>
- <code>clearDijitParams()</code>: 清除所有当前定义的 dijit 参数。
- </para></listitem>
- </itemizedlist>
- <para>
- Dijit 参数存储在 <code>dijitParams</code> 公共属性里。这样,你可以
- 通过设置这个元素的属性来 dijit-enable 一个存在的表单元素。 你将不会有
- 上述访问器来简化处理这些参数。
- </para>
- <para>
- 另外,dijit-specific 元素实现一个不同的装饰器列表,相应如下:
- </para>
- <programlisting role="php"><![CDATA[
- $element->addDecorator('DijitElement')
- ->addDecorator('Errors')
- ->addDecorator('HtmlTag', array('tag' => 'dd'))
- ->addDecorator('Label', array('tag' => 'dt'));
- ]]></programlisting>
- <para>
- 实际上,DijitElement 装饰器用来替换标准的 ViewHelper 装饰器。
- </para>
- <para>
- 最后,基本的 Dijit 元素确保在视图中设置 Dojo 视图助手路径。
- </para>
- <para>
- 一个提供 <code>多重</code> 摘要表单元素的功能的 DijitElement 的变量 DijitMulti
- 让开发者指定 'multiOptions' - 一般是 select 选项或 radio 选项。
- </para>
- <para>
- 下列 dijit 元素随标准的 Zend Framework 版本发行。
- </para>
- <sect3 id="zend.dojo.form.elements.button">
- <title>按钮</title>
- <para>
- 虽然不是从 <link linkend="zend.form.standardElements.button">标准 Button 元素</link>中派生,
- 它确实实现了相同的功能,并可以随时替换它。展示一下下列函数:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getLabel()</code> 如果没有提供名字,将使用元素名作为按钮标签。另外,
- 如果翻译适配器有匹配的翻译信息,它将翻译这个名字。
- </para></listitem>
- <listitem><para>
- <code>isChecked()</code> 确定是否提交的值和标签(label)匹配,如果匹配,返回true。
- 这对于当提交表单时确定用了那个按钮很有用。
- </para></listitem>
- </itemizedlist>
- <para>
- 另外,只有 <code>DijitElement</code> 和 <code>DtDdWrapper</code> 装饰器用于按钮元素。
- </para>
- <example id="zend.dojo.form.elements.button.example">
- <title> 按钮 dijit 元素用法范例 </title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'Button',
- 'foo',
- array(
- 'label' => 'Button Label',
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.checkBox">
- <title>检查框</title>
- <para>
- 虽然不是从 <link linkend="zend.form.standardElements.checkbox"> 标准检查框元素 </link> 里派生,
- 但它确实实现了相同的功能。展示一下下列函数:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setCheckedValue($value)</code>: 设置一个值,当元素被选就用这个值。
- </para></listitem>
- <listitem><para>
- <code>getCheckedValue()</code>: 获取当元素被时选使用的值。
- </para></listitem>
- <listitem><para>
- <code>setUncheckedValue($value)</code>: 设置一个值,当元素不被选中就用这个值。
- </para></listitem>
- <listitem><para>
- <code>getUncheckedValue()</code>: 获取当元素不被选中时使用的值。
- </para></listitem>
- <listitem><para>
- <code>setChecked($flag)</code>: 标记元素为选中或未选中。
- </para></listitem>
- <listitem><para>
- <code>isChecked()</code>: 确定元素是否被选中。
- </para></listitem>
- </itemizedlist>
- <example id="zend.dojo.form.elements.checkBox.example">
- <title> 检查框 dijit 元素用法范例 </title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'CheckBox',
- 'foo',
- array(
- 'label' => 'A check box',
- 'checkedValue' => 'foo',
- 'uncheckedValue' => 'bar',
- 'checked' => true,
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.comboBox">
- <title> 组合框(ComboBox)和 FilteringSelect</title>
- <para>
- 正如在组合框 <link linkend="zend.dojo.view.dijit.form">dijit 视图助手文档 </link> 里的注释,
- 组合框是介于选择和文本输入之间的混合体,可以从列表中选择也可以输入内容到列表里。
- FilteringSelect 也一样,但不允许任意输入。
- </para>
- <note>
- <title>组合框(ComboBoxes) 返回标签值</title>
- <para>
- 组合框返回标签值而不是选项值,它可期望导致分离(disconnect)。
- 由于这个原因,组合框不自动注册一个 <code>InArray</code> 校验器(而 FilteringSelects 会)。
- </para>
- </note>
- <para>
- 组合框和 FilteringSelect 表单元素提供访问器和增变器来检查和设置选择选项和指定 dojo.data 数据存储(如果使用的话)。
- 它们从 DijitMulti 继承,允许你通过 <code>setMultiOptions()</code> 和 <code>setMultiOption()</code> 方法指定选择选项。
- 另外,下列方法可用:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getStoreInfo()</code>: 获取当前设置的所有数据存储信息,如果没有,返回一个空的数组。
- </para></listitem>
- <listitem><para>
- <code>setStoreId($identifier)</code>: 设置存储标识符变量(在 Dojo 里通常由属性 'jsId' 指定)。
- 这个应当是有效的 javascript 变量名。
- </para></listitem>
- <listitem><para>
- <code>getStoreId()</code>: 获取存储标识符变量名。
- </para></listitem>
- <listitem><para>
- <code>setStoreType($dojoType)</code>: 设置数据存储类,例如"dojo.data.ItemFileReadStore"。
- </para></listitem>
- <listitem><para>
- <code>getStoreType()</code>: 获取 dojo 数据存储类。
- </para></listitem>
- <listitem><para>
- <code>setStoreParams(array $params)</code>: 设置任何用于配置数据存储对象的参数。
- 例如,dojo.data.ItemFileReadStore 期望一个'url'参数指向一个能返回 dojo.data 对象的位置。
- </para></listitem>
- <listitem><para>
- <code>getStoreParams()</code>: 获取任何当前设置的数据存储参数,如果没有,返回一个空数组。
- </para></listitem>
- <listitem><para>
- <code>setAutocomplete($flag)</code>: 标识当用户离开元素时,是否选择的条目将被使用。
- </para></listitem>
- <listitem><para>
- <code>getAutocomplete()</code>: 获取自动完成标志的值。
- </para></listitem>
- </itemizedlist>
- <para>
- 缺省地,如果没有 dojo.data 存储和元素一起注册,该元素就注册
- 一个 <code>InArray</code> 校验器,它依靠注册的选项的数组键来校验。
- 你可以通过调用 <code>setRegisterInArrayValidator(false)</code> 或
- 传递一个 false 值给 <code>registerInArrayValidator</code> 配置键
- 来禁止该行为。
- </para>
- <example id="zend.dojo.form.elements.comboBox.selectExample">
- <title> 使用组合框 dijit 元素做选择输入的范例 </title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'ComboBox',
- 'foo',
- array(
- 'label' => 'ComboBox (select)',
- 'value' => 'blue',
- 'autocomplete' => false,
- 'multiOptions' => array(
- 'red' => 'Rouge',
- 'blue' => 'Bleu',
- 'white' => 'Blanc',
- 'orange' => 'Orange',
- 'black' => 'Noir',
- 'green' => 'Vert',
- ),
- )
- );
- ]]></programlisting>
- </example>
- <example id="zend.dojo.form.elements.comboBox.datastoreExample">
- <title> 带数据存储的组合框 dijit 元素用法范例</title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'ComboBox',
- 'foo',
- array(
- 'label' => 'ComboBox (datastore)',
- 'storeId' => 'stateStore',
- 'storeType' => 'dojo.data.ItemFileReadStore',
- 'storeParams' => array(
- 'url' => '/js/states.txt',
- ),
- 'dijitParams' => array(
- 'searchAttr' => 'name',
- ),
- )
- );
- ]]></programlisting>
- </example>
- <para>
- 上述例子也可以使用 <code>FilteringSelect</code> 来代替 <code>ComboBox</code>。
- </para>
- </sect3>
- <sect3 id="zend.dojo.form.elements.currencyTextBox">
- <title> 货币文字框 </title>
- <para>
- 货币文字框主要用来支持货币输入。货币可以是本地化的,并且支持带小数的和不带小数的数值。
- </para>
- <para>
- 在内部,货币文字框由 <link
- linkend="zend.dojo.form.elements.numberTextBox">NumberTextBox</link>、
- <link
- linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
- 和 <link linkend="zend.dojo.form.elements.textBox">TextBox</link> 派生,
- 所有对这些类可用的方法也对它可用。另外,也可用下列约束方法:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setCurrency($currency)</code>: 设置要使用的货币类型;
- 遵循 <ulink url="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</ulink> 规范。
- </para></listitem>
- <listitem><para>
- <code>getCurrency()</code>: 获取当前货币类型。
- </para></listitem>
- <listitem><para>
- <code>setSymbol($symbol)</code>: 设置 3-letter <ulink
- url="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</ulink> 货币符号。
- </para></listitem>
- <listitem><para>
- <code>getSymbol()</code>: 获取当前货币符号。
- </para></listitem>
- <listitem><para>
- <code>setFractional($flag)</code>: 设置是否支持小数值。
- </para></listitem>
- <listitem><para>
- <code>getFractional()</code>: 获取小数标记的状态。
- </para></listitem>
- </itemizedlist>
- <example id="zend.dojo.form.elements.currencyTextBox.example">
- <title> 货币文字框 dijit 元素用法范例 </title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'CurrencyTextBox',
- 'foo',
- array(
- 'label' => 'Currency:',
- 'required' => true,
- 'currency' => 'USD',
- 'invalidMessage' => 'Invalid amount. Include dollar sign, commas, and cents.',
- 'fractional' => false,
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.dateTextBox">
- <title> 日期文字框 </title>
- <para>
- 日期文字框提供一个下拉式日历用来选择日期,也有一个客户端的日期校验和格式化。
- </para>
- <para>
- 在内部,日期文字框从 <link
- linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
- 和 <link linkend="zend.dojo.form.elements.textBox">TextBox</link> 派生,
- 所有对这些类可用的方法也对它可用。另外,下列方法也可以独立使用:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setAmPm($flag)</code> 和 <code>getAmPm()</code>: 是否在时间上使用 AM/PM。
- </para></listitem>
- <listitem><para>
- <code>setStrict($flag)</code> 和 <code>getStrict()</code>:
- 是否用严格的正则表达式校验输入。如果是缺省的 false,则对空白字符和一些缩写不严格检查。
- </para></listitem>
- <listitem><para>
- <code>setLocale($locale)</code> 和 <code>getLocale()</code>:
- 设置和获取用于特定元素的地方。
- </para></listitem>
- <listitem><para>
- <code>setDatePattern($pattern)</code> 和
- <code>getDatePattern()</code>: 提供和读取 <ulink
- url="http://www.unicode.org/reports/tr35/#Date_Format_Patterns">unicode
- 日期格式模型 </ulink> 来格式化日期。
- </para></listitem>
- <listitem><para>
- <code>setFormatLength($formatLength)</code> 和
- <code>getFormatLength()</code>: 提供和读取格式长度类型,是 "long"、 "short"、 "medium"
- 或 "full" 其中之一。
- </para></listitem>
- <listitem><para>
- <code>setSelector($selector)</code> 和
- <code>getSelector()</code>: 提供和读取选择器的风格, "date" 或 "time"。
- </para></listitem>
- </itemizedlist>
- <example id="zend.dojo.form.elements.dateTextBox.example">
- <title> 日期文字框 dijit 元素用法范例 </title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'DateTextBox',
- 'foo',
- array(
- 'label' => 'Date:',
- 'required' => true,
- 'invalidMessage' => 'Invalid date specified.',
- 'formatLength' => 'long',
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.horizontalSlider">
- <title> 水平滑尺(HorizontalSlider)</title>
- <para>
- 水平滑尺提供了一个滑尺 UI 小部件用来在一个范围内选择数值。
- 在内部,它设置一个隐藏元素的值然后由表单提交。
- </para>
- <para>
- 水平滑尺从 <link
- linkend="zend.dojo.form.elements.slider">abstract Slider dijit
- element</link> 派生。另外,有许多方法用来设置和配置滑尺刻度和刻度标签。
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>setTopDecorationDijit($dijit)</code> 和
- <code>setBottomDecorationDijit($dijit)</code>:
- 设置 dijit 的名字用于滑尺的顶或底。这个不包括"dijit.form."前缀,
- 已经是最终的名字 - "HorizontalRule" 或 "HorizontalRuleLabels"。
- </para>
- </listitem>
- <listitem>
- <para>
- <code>setTopDecorationContainer($container)</code> 和
- <code>setBottomDecorationContainer($container)</code>:
- 指定用于刻度的容器元素的名字,如:'topRule'、 'topContainer'等。
- </para>
- </listitem>
- <listitem>
- <para>
- <code>setTopDecorationLabels(array $labels)</code> 和
- <code>setBottomDecorationLabels(array $labels)</code>:
- 设置标签用于 RuleLabels dijit 类型之一,这些是索引数组;
- 指定一个空间来跳过给定的标签位置(如开头或结尾)。
- </para>
- </listitem>
- <listitem>
- <para>
- <code>setTopDecorationParams(array $params)</code> 和
- <code>setBottomDecorationParams(array $params)</code>:
- 配置给定的刻度或刻度标签 dijit 的 dijit 参数。
- </para>
- </listitem>
- <listitem>
- <para>
- <code>setTopDecorationAttribs(array $attribs)</code> 和
- <code>setBottomDecorationAttribs(array $attribs)</code>:
- 指定给定的刻度或刻度标签 HTML 元素容器的 HTML 属性。
- </para>
- </listitem>
- <listitem>
- <para>
- <code>getTopDecoration()</code> 和
- <code>getBottomDecoration()</code>:
- 获取所有由上述增变器给定规则或 RuleLabels 定义的元数据。
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.dojo.form.elements.horizontalSlider.example">
- <title> 水平滑尺 dijit 元素用法范例 </title>
- <para>
- 下面创建一个整数范围为 -10到10的水平滑尺。顶上有 20%、 40%、 60% 和 80%标记。
- 底下有 0 、50% 和 100%。每次改变,隐藏元素的值就更新一次。
- </para>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'HorizontalSlider',
- 'horizontal',
- array(
- 'label' => 'HorizontalSlider',
- 'value' => 5,
- 'minimum' => -10,
- 'maximum' => 10,
- 'discreteValues' => 11,
- 'intermediateChanges' => true,
- 'showButtons' => true,
- 'topDecorationDijit' => 'HorizontalRuleLabels',
- 'topDecorationContainer' => 'topContainer',
- 'topDecorationLabels' => array(
- ' ',
- '20%',
- '40%',
- '60%',
- '80%',
- ' ',
- ),
- 'topDecorationParams' => array(
- 'container' => array(
- 'style' => 'height:1.2em; font-size=75%;color:gray;',
- ),
- 'list' => array(
- 'style' => 'height:1em; font-size=75%;color:gray;',
- ),
- ),
- 'bottomDecorationDijit' => 'HorizontalRule',
- 'bottomDecorationContainer' => 'bottomContainer',
- 'bottomDecorationLabels' => array(
- '0%',
- '50%',
- '100%',
- ),
- 'bottomDecorationParams' => array(
- 'list' => array(
- 'style' => 'height:1em; font-size=75%;color:gray;',
- ),
- ),
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.numberSpinner">
- <title> 数字微调控制器(NumberSpinner)</title>
- <para>
- 数字微调控制器是一个文本元素用来输入数字值;它也包括用于增加和减少一定值的元素。
- </para>
- <para>
- 可用方法如下:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setDefaultTimeout($timeout)</code> 和
- <code>getDefaultTimeout()</code>: 设置和获取缺省超时值,以毫秒为单位,
- 当按住按钮时,数值就发生变化。
- </para></listitem>
- <listitem><para>
- <code>setTimeoutChangeRate($rate)</code> 和
- <code>getTimeoutChangeRate()</code>: 设置和获取比率,以毫秒为单位,
- 就是当按住按钮时,数值的变化率。
- </para></listitem>
- <listitem><para>
- <code>setLargeDelta($delta)</code> 和
- <code>getLargeDelta()</code>: 设置和读取当按钮被按住数字应当改变的值的大小。
- </para></listitem>
- <listitem><para>
- <code>setSmallDelta($delta)</code> 和
- <code>getSmallDelta()</code>: 设置和读取当按钮被按住一次数字的变化量。
- </para></listitem>
- <listitem><para>
- <code>setIntermediateChanges($flag)</code> 和
- <code>getIntermediateChanges()</code>: 设置和读取当按钮被按住时是否显示数值的标志。
- </para></listitem>
- <listitem><para>
- <code>setRangeMessage($message)</code> 和
- <code>getRangeMessage()</code>: 设置和读取指示可用数值范围的信息。
- </para></listitem>
- <listitem><para>
- <code>setMin($value)</code> 和 <code>getMin()</code>:
- 设置和获取最小可能值。
- </para></listitem>
- <listitem><para>
- <code>setMax($value)</code> 和 <code>getMax()</code>:
- 设置和获取最大可能值。
- </para></listitem>
- </itemizedlist>
- <example id="zend.dojo.form.elements.numberSpinner.example">
- <title> 数字微调控制器 dijit 元素用法范例 </title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'NumberSpinner',
- 'foo',
- array(
- 'value' => '7',
- 'label' => 'NumberSpinner',
- 'smallDelta' => 5,
- 'largeDelta' => 25,
- 'defaultTimeout' => 500,
- 'timeoutChangeRate' => 100,
- 'min' => 9,
- 'max' => 1550,
- 'places' => 0,
- 'maxlength' => 20,
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.numberTextBox">
- <title> 数字框 </title>
- <para>
- 数字框是一个文本元素用来输入数字值,不象数字增变器,数字框用手工输入。
- 校验和限制可以使数值在一定的范围并符合一定的格式。
- </para>
- <para>
- 在内部,数字框从 <link
- linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
- 和 <link linkend="zend.dojo.form.elements.textBox">TextBox</link>派生;
- 所有对这些类可用的方法都可用,另外,下列方法可以独立使用:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setLocale($locale)</code> 和 <code>getLocale()</code>:
- 指定和获取一个特定或预备的地方来使用 dijit。
- </para></listitem>
- <listitem><para>
- <code>setPattern($pattern)</code> 和
- <code>getPattern()</code>: 设置和获取一个 <ulink
- url="http://www.unicode.org/reports/tr35/#Number_Format_Patterns">数字模型格式
- </ulink> 来格式化数字。
- </para></listitem>
- <listitem><para>
- <code>setType($type)</code> 和 <code>getType()</code>:
- 设置和获取数字格式类型(应当为 'decimal'、'percent' 或 'currency'其中之一 )。
- </para></listitem>
- <listitem><para>
- <code>setPlaces($places)</code> 和 <code>getPlaces()</code>:设置和获取有多少小数位。
- </para></listitem>
- <listitem><para>
- <code>setStrict($flag)</code> 和 <code>getStrict()</code>:
- 设置和读取严格标志的值,它用来指示对空白字符和非数字字符控制的严格程度。
- </para></listitem>
- </itemizedlist>
- <example id="zend.dojo.form.elements.numberTextBox.example">
- <title> 数字框 dijit 元素用法范例 </title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'NumberTextBox',
- 'elevation',
- array(
- 'label' => 'NumberTextBox',
- 'required' => true,
- 'invalidMessage' => 'Invalid elevation.',
- 'places' => 0,
- 'constraints' => array(
- 'min' => -20000,
- 'max' => 20000,
- ),
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.passwordTextBox">
- <title>密码框</title>
- <para>
- 密码框是个 ValidationTextBox,它和密码输入有联系;它唯一的意图是允许
- dijit-themed 文本输入密码并提供客户端校验。
- </para>
- <para>
- 在内部,密码框从 <link
- linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
- 和 <link linkend="zend.dojo.form.elements.textBox">TextBox</link> 派生;
- 所有对这些类可用的方法都可用。
- </para>
- <example id="zend.dojo.form.elements.passwordTextBox.example">
- <title>密码框 dijit 元素用法范例</title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'PasswordTextBox',
- 'password',
- array(
- 'label' => 'Password',
- 'required' => true,
- 'trim' => true,
- 'lowercase' => true,
- 'regExp' => '^[a-z0-9]{6,}$',
- 'invalidMessage' => 'Invalid password; must be at least 6 alphanumeric characters',
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.radioButton">
- <title>单选按钮</title>
- <para>
- 单选按钮封装了标准单选输入元素来提供一个和其它 dojo dijits 一致的外观。
- (因为英文为 radio button,单选按钮在过去也被翻译为无线电按钮,但从功能上讲,单选按钮更准确 Jason Qi注)
- </para>
- <para>
- 单选按钮从 DijitMulti 继承,它让你通过 <code>setMultiOptions()</code> 和 <code>setMultiOption()</code> 方法来指定选择选项。
- </para>
- <para>
- 缺省地,该元素注册一个 <code>InArray</code> 校验器,它依靠注册的选项的数组键来校验。
- 你可以通过调用 <code>setRegisterInArrayValidator(false)</code> 或传递一个 false 值给
- <code>registerInArrayValidator</code>配置键来禁止该行为。
- </para>
- <example id="zend.dojo.form.elements.radioButton.example">
- <title> 单选按钮 dijit 元素用法范例 </title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'RadioButton',
- 'foo',
- array(
- 'label' => 'RadioButton',
- 'multiOptions' => array(
- 'foo' => 'Foo',
- 'bar' => 'Bar',
- 'baz' => 'Baz',
- ),
- 'value' => 'bar',
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.slider">
- <title>滑尺摘要元素</title>
- <para>
- <link linkend="zend.dojo.form.elements.horizontalSlider">水平滑尺</link> 和
- <link linkend="zend.dojo.form.elements.verticalSlider">垂直滑尺</link>
- 都是从滑尺摘要元素派生而来的。它包含了许多通用的方法来配置你的滑尺,包括:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setClickSelect($flag)</code> 和
- <code>getClickSelect()</code>:
- 设置和获取确定是否点击滑尺来可以修改数值的标志。
- </para></listitem>
- <listitem><para>
- <code>setIntermediateChanges($flag)</code> 和
- <code>getIntermediateChanges()</code>:
- 设置和获取是否对每个滑尺修改时间发送通知的标志。
- </para></listitem>
- <listitem><para>
- <code>setShowButtons($flag)</code> 和
- <code>getShowButtons()</code>:
- 设置和获取是否在两端显示按钮的标志。如果有的话,客户可以通过点击按钮来修改滑尺的值。
- </para></listitem>
- <listitem><para>
- <code>setDiscreteValues($value)</code> 和
- <code>getDiscreteValues()</code>:
- 设置和获取滑尺的不连续的数值。
- </para></listitem>
- <listitem><para>
- <code>setMaximum($value)</code> 和 <code>getMaximum()</code>:设置滑尺的最大值。
- </para></listitem>
- <listitem><para>
- <code>setMinimum($value)</code> and <code>getMinimum()</code>:设置滑尺的最小值。
- </para></listitem>
- <listitem><para>
- <code>setPageIncrement($value)</code> 和
- <code>getPageIncrement()</code>: 设置滑尺在键盘事件上修改的数量。
- </para></listitem>
- </itemizedlist>
- <para>
- 范例在每个具体的继承类里提供。
- </para>
- </sect3>
- <sect3 id="zend.dojo.form.elements.submitButton">
- <title>提交按钮</title>
- <para>
- 虽然没有叫提交按钮的 Dijit,但我们还是在此提供一个按钮 dijit 用来提交
- 表单而不需请求任何另外的 javascript 绑定。它的工作方式和
- <link linkend="zend.dojo.form.elements.button">按钮 dijit</link> 一模一样。
- </para>
- <example id="zend.dojo.form.elements.submitButton.example">
- <title>Example SubmitButton dijit element usage</title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'SubmitButton',
- 'foo',
- array(
- 'required' => false,
- 'ignore' => true,
- 'label' => 'Submit Button!',
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.textBox">
- <title>文字框</title>
- <para>
- 文字框用来输入文字,在外观上和其它 dijit 保持一致。然而,它有一些过滤和校验的功能,详见下列方法:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setLowercase($flag)</code> 和
- <code>getLowercase()</code>: 设置和获取是否把输入转为小写的标志。
- </para></listitem>
- <listitem><para>
- <code>setPropercase($flag)</code> 和
- <code>getPropercase()</code>: 设置和获取是否把输入转换为适当的大小写的标志。
- Case.
- </para></listitem>
- <listitem><para>
- <code>setUppercase($flag)</code> 和 <code>getUppercase()</code>: 设置和获取是否把输入转为大写的标志。
- </para></listitem>
- <listitem><para>
- <code>setTrim($flag)</code> 和 <code>getTrim()</code>: 设置和获取是否把引导和拖尾的空白字符去掉的标志。
- </para></listitem>
- <listitem><para>
- <code>setMaxLength($length)</code> 和
- <code>getMaxLength()</code>: 设置和获取输入的最大长度。
- </para></listitem>
- </itemizedlist>
- <example id="zend.dojo.form.elements.textBox.example">
- <title> 文字框 dijit 元素用法范例 </title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'TextBox',
- 'foo',
- array(
- 'value' => 'some text',
- 'label' => 'TextBox',
- 'trim' => true,
- 'propercase' => true,
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.textarea">
- <title>Textarea</title>
- <para>
- Textarea 就像标准的 HTML textarea一样。然而,它不支持行列的设置。
- 作为替代,textarea 宽度可以用标准的 CSS 来设置,行就完全忽略了。当输入字符增加时,textarea 就垂直增长。
- </para>
- <example id="zend.dojo.form.elements.textarea.example">
- <title> Textarea dijit 元素用法范例 </title>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'Textarea',
- 'textarea',
- array(
- 'label' => 'Textarea',
- 'required' => true,
- 'style' => 'width: 200px;',
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.timeTextBox">
- <title> 时间文字框 </title>
- <para>
- 时间文字框是提供下拉式选择时间的文字输入框。下拉框可配置为显示一特定的时间窗口,带有特定的增量。
- </para>
- <para>
- 在内部,时间文字框从 <link
- linkend="zend.dojo.form.elements.dateTextBox">日期文字框</link>、
- <link
- linkend="zend.dojo.form.elements.validationTextBox">校验文字框</link>
- 和 <link linkend="zend.dojo.form.elements.textBox">文字框</link> 派生。
- 所有对这些类可用的方法都可用。另外,下列方法可以独立使用:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setTimePattern($pattern)</code> 和
- <code>getTimePattern()</code>: 设置和获取 <ulink
- url="http://www.unicode.org/reports/tr35/#Date_Format_Patterns">unicode
- 时间格式模型</ulink> 来格式化时间。
- </para></listitem>
- <listitem><para>
- <code>setClickableIncrement($format)</code> 和
- <code>getClickableIncrement()</code>: 设置 <ulink
- url="http://en.wikipedia.org/wiki/ISO_8601">ISO-8601</ulink> 字符串,来表示
- 每个在时间 picker increses 的可点击的元素的数量。
- </para></listitem>
- <listitem><para>
- <code>setVisibleIncrement($format)</code> 和
- <code>getVisibleIncrement()</code>: 在时间选择器中设置增量的可见性,必须遵循 ISO-8601格式。
- </para></listitem>
- <listitem><para>
- <code>setVisibleRange($format)</code> 和
- <code>getVisibleRange()</code>:
- 在时间选择器中在给定的时刻,设置和获取可见时间的范围,必须遵循 ISO-8601格式。
- </para></listitem>
- </itemizedlist>
- <example id="zend.dojo.form.elements.timeTextBox.example">
- <title> 时间文字框 dijit 元素用法范例 </title>
- <para>
- 下面讲生成一个时间文字框,每次显示 2 小时,增量是 10 分钟。
- </para>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'TimeTextBox',
- 'foo',
- array(
- 'label' => 'TimeTextBox',
- 'required' => true,
- 'visibleRange' => 'T04:00:00',
- 'visibleIncrement' => 'T00:10:00',
- 'clickableIncrement' => 'T00:10:00',
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.validationTextBox">
- <title>校验文字框</title>
- <para>
- 校验文字框添加校验和限制给文字输入。
- 在内部,它从 <link linkend="zend.dojo.form.elements.textBox">文字框</link> 派生,
- 并增加了下列访问器和增变器来处理 dijit 参数:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setInvalidMessage($message)</code> 和
- <code>getInvalidMessage()</code>: 设置和获取工具提示消息来显示什么时候值没有通过校验。
- </para></listitem>
- <listitem><para>
- <code>setPromptMessage($message)</code> 和
- <code>getPromptMessage()</code>: 设置和获取工具提示消息来显示元素用法。
- </para></listitem>
- <listitem><para>
- <code>setRegExp($regexp)</code> 和 <code>getRegExp()</code>:
- 设置和获取用于校验元素的正则表达式。正则表达式不需要边界(不象 PHP 的 preg* 函数家族)。
- </para></listitem>
- <listitem><para>
- <code>setConstraint($key, $value)</code> 和
- <code>getConstraint($key)</code>:
- 设置和获取另外的限制,用于校验元素;使用子类。限制存储在 dijit 参数数组中,键值为 'constraints'。
- </para></listitem>
- <listitem><para>
- <code>setConstraints(array $constraints)</code> 和
- <code>getConstraints()</code>:
- 设置和获取独立的限制,用于校验元素,是哟功能子类。
- </para></listitem>
- <listitem><para>
- <code>hasConstraint($key)</code>: 测试是否有给定的限制存在。
- </para></listitem>
- <listitem><para>
- <code>removeConstraint($key)</code> 和
- <code>clearConstraints()</code>: 删除元素中一个或所有的限制。
- </para></listitem>
- </itemizedlist>
- <example id="zend.dojo.form.elements.validationTextBox.example">
- <title> 校验文字框 dijit 元素用法范例 </title>
- <para>
- 下面生成一个校验文字框,要求只包含字符的单个字符串(例如,没有空格,大部分标点符号无效)。
- </para>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'ValidationTextBox',
- 'foo',
- array(
- 'label' => 'ValidationTextBox',
- 'required' => true,
- 'regExp' => '[\w]+',
- 'invalidMessage' => 'Invalid non-space text.',
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.dojo.form.elements.verticalSlider">
- <title>垂直滑尺(VerticalSlider)</title>
- <para>
- 垂直滑尺是<link linkend="zend.dojo.form.elements.horizontalSlider">水平滑尺</link>的兄弟,
- 操作基本相同。唯一的区别是,对垂直滑尺来说使用了 'left*' 和 'right*' 替换了
- 在水平滑尺中的 'top*' 和 'bottom*',并且使用 VerticalRule 和 VerticalRuleLabels
- 分别替代了 HorizontalRule 和 HorizontalRuleLabels。
- </para>
- <example id="zend.dojo.form.elements.verticalSlider.example">
- <title> 垂直 dijit 元素使用范例 </title>
- <para>
- 下面创建一个整数范围为 -10到10的垂直滑尺。左边有 20%、 40%、 60% 和 80%标记。
- 右边有 0 、50% 和 100%。每次改变,隐藏元素的值就更新一次。
- </para>
- <programlisting role="php"><![CDATA[
- $form->addElement(
- 'VerticalSlider',
- 'foo',
- array(
- 'label' => 'VerticalSlider',
- 'value' => 5,
- 'style' => 'height: 200px; width: 3em;',
- 'minimum' => -10,
- 'maximum' => 10,
- 'discreteValues' => 11,
- 'intermediateChanges' => true,
- 'showButtons' => true,
- 'leftDecorationDijit' => 'VerticalRuleLabels',
- 'leftDecorationContainer' => 'leftContainer',
- 'leftDecorationLabels' => array(
- ' ',
- '20%',
- '40%',
- '60%',
- '80%',
- ' ',
- ),
- 'rightDecorationDijit' => 'VerticalRule',
- 'rightDecorationContainer' => 'rightContainer',
- 'rightDecorationLabels' => array(
- '0%',
- '50%',
- '100%',
- ),
- )
- );
- ]]></programlisting>
- </example>
- </sect3>
- </sect2>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|