この記事は、サイモン・コドリントンとマロリー・ヴァン・アチェルバーグによって査読されました。 SetePointコンテンツを最高にするためにSitePointのピアレビュアーのすべてに感謝します! Webデザイナーとして、かなり定期的にWebフォームを作成する必要がある可能性があります。多くの場合、これは感謝のない作業であり、頭痛の種に悩まされています(特に、マルチステップフォームの作成など、より複雑なことをしている場合)。このような場合、UIフレームワークを使用して痛みを和らげ、開発プロセスをスピードアップする方が良い場合があります。この記事では、さまざまな種類のフォームをすばやく作成できるさまざまなヒントとトリックを概説します。
キーテイクアウト
プロジェクトに必要なJavaScriptおよびCSSファイルを含めることができるさまざまな方法があります。ライブラリパッケージをダウンロードすると、これらのファイルがCodeBaseフォルダー内にあります。次のように含めることができます:
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="./codebase/webix.css"</span>></span> </span><span><span><span><script</span> src<span>="./codebase/webix.js"</span>></span><span><span></script</span>></span> </span>
または、cdn:
を使用できます<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="http://cdn.webix.com/edge/webix.css"</span>></span> </span><span><span><span><script</span> src<span>="http://cdn.webix.com/edge/webix.js"</span>></span><span><span></script</span>></span> </span>
nuget:
を使用することもできますnuget <span>install Webix </span>
Microsoft Visual Studioを使用している場合は、パッケージマネージャーコンソールからこれを実行します。
install-package Webix
bower install webix
WebixオブジェクトのUIメソッドを呼び出し、さまざまなパラメーターを渡して出力を構成することから始めます。
webix<span>.ui({ </span> <span>view: "form", </span> <span>id: "myForm", </span> <span>container: "areaA", </span> <span>width: 350, </span> <span>elements: [ </span> <span>{ // first form component }, </span> <span>{ // second form component}, </span> <span>{ // n-th form component */} </span> <span>] </span><span>}); </span>
ビュープロパティは、作成された要素の種類を決定します(ここではフォームを作成していますが、これはメニューまたはチャートである可能性があります)。
IDプロパティはフォームにIDを割り当て、後で参照することができます。webix<span>.ui({ </span> <span>... </span> <span>elements: [ </span> <span>{ view: "text", label: "Username", name: "username" }, </span> <span>{ view: "text", label: "Password", name: "password", type: "password" }, </span> <span>{ view: "checkbox", labelRight: "I accept the terms of use", name: "accept" }, </span> <span>{ view: "button", value: "Submit", width: 150, align: "center", click: submit } </span> <span>] </span><span>}); </span>
デモです:
<span>function submit(){ </span> webix<span>.message(JSON.stringify($$("myForm").getValues(), null, 2)); </span><span>} </span>
複数の選択と提案
開発者がCVを生成するのに役立つページを作成したいと想像してください。次のフィールドが含まれている可能性があります。
ユーザーが複数のプログラミング言語を知っていることを期待しているため、そのような言語のリストを作成し、マルチコンボコンポーネントを使用して表示できます。これがどのように見えるかの例です:
それがどのように機能するかを確認しましょう。テキストフィールドをクリックすると、ドロップダウンリストが表示されます。
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="./codebase/webix.css"</span>></span> </span><span><span><span><script</span> src<span>="./codebase/webix.js"</span>></span><span><span></script</span>></span> </span>
スクロールして必要なアイテムを選択するか、入力を開始して提案を絞り込むことができます。
この例のデモです。
Webixは、テキストフィールド、ボタン、チェックボックスなどの従来のフォーム要素に制限されません。好きなウィジェットをフォーム内に配置できます。たとえば、ツリーウィジェットを見てみましょう。最初はフォームコントロールとして設計されていなかったため、この要素に使用可能なSetValueおよびGetValueメソッドはありません。ただし、このコンポーネントの値を返したり設定したりすることができる場合は、これらの方法が必要です。それで、私たちは何ができますか? 幸いなことに、私たちを助けることができるProtouiメソッドがあります。既存のビューに基づいて新しいビューを作成できます。
試してみましょう:上記のコードでは、Formtreeと呼ばれる新しいビューを作成しています。次に、設定してID値を取得できる2つの新しいメソッドを定義します。最後に、この新しいビューの基礎としてツリーウィジェットを使用しています。
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="./codebase/webix.css"</span>></span> </span><span><span><span><script</span> src<span>="./codebase/webix.js"</span>></span><span><span></script</span>></span> </span>
通常のように新しい要素をフォームに追加できます:
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="http://cdn.webix.com/edge/webix.css"</span>></span> </span><span><span><span><script</span> src<span>="http://cdn.webix.com/edge/webix.js"</span>></span><span><span></script</span>></span> </span>
ここにいくつかの新しいプロパティを導入しています。テンプレートプロパティはツリーノードにチェックボックスを追加し、3状態のプロパティは3状態のチェックボックスを有効にします。これらのチェックボックスは次のとおりです
nuget <span>install Webix </span>
ユーザーが子ノードをチェック/チェックすると、個々の子供ノードのみがチェック/チェックされていません。
これは機能するはずです。ただし、他の問題は次のとおりです。WebKitはタブ中にチェックボックスをマークしません。これに対抗するために、いくつかのCSSコードを使用して、フォーカスされたチェックボックスにアウトラインまたはボックスシャドウを追加できます。例を次に示します:
このすべてを所定の位置に配置すると、
[install-package Webix
bower install webix
yep、IDは正常に送信されました。 こちらでこのフォームを確認できます:
CodepenのSitePoint(@SitePoint)のペンAnjyjrを参照してください
ユーザーから大量のデータを収集する予定がある場合は、フォームを小さな部分に分離できます。 2つの可能性を見てみましょう。複数のタブで構成されるフォームと、段階的にデータの挿入を可能にするフォーム。 Tabviewコンポーネント
Tabviewコンポーネントは、ユーザーが切り替えることができるタブに分離された要素のコレクションを作成します。 TabViewコンテンツとして単一の要素を使用するか、必要な要素を含む行と列の組み合わせを定義できます。たとえば:
タブ付きフォームを作成するために必要なのはそれだけです。以下の結果を確認できます:
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="./codebase/webix.css"</span>></span> </span><span><span><span><script</span> src<span>="./codebase/webix.js"</span>></span><span><span></script</span>></span> </span>
このアプローチに追加の利点は、これらのパーツを1つとして機能させるために追加のコードを追加する必要がないことです。 TabViewコンポーネントをフォーム内に配置し、すべてのフィールドに名前プロパティを追加すると、挿入されたすべての値を取得できます。 [
[<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="http://cdn.webix.com/edge/webix.css"</span>></span> </span><span><span><span><script</span> src<span>="http://cdn.webix.com/edge/webix.js"</span>></span><span><span></script</span>></span> </span>少し乱雑に見えますが、それでも私たちのデータです。
あなたの意図は、多数のタブを使用することであり、tab
キーを使用してそれらを切り替える場合は、タブバー内のボタンを使用できます。このアプローチを使用すると、タブをタブナビゲーション順に追加できます。あなたがする必要があるのは、ヘッダープロパティを変更することだけです:
にヒットしたときに表示されることを確認する必要があります。 これを達成する1つの方法は、Hotkeyプロパティを使用することです。しかし、ここにあなたが気付くべきことがあります。このプロパティは、キーを単一のページ要素にバインドする場合、問題なく動作します。しかし、私たちの形には2つのデートピッカーがあります。したがって、Addhotkeyメソッドを使用して、すべてのデートピッカーで動作する新しいハンドラーを作成する必要があります。 次のデモでこれらすべてが一緒に機能するのを見ることができます:
nuget <span>install Webix </span>
代替手段として、このタスクにアコーディオンを使用できます。
Multiviewコンポーネントを使用すると、次々と表示できる要素のシーケンスを作成できます。タブを使用してマルチビュー領域を切り替えることができますが、マルチステップフォームの作成に関心があるため、ボタンを追加してさまざまな段階をユーザーにガイドしましょう。
まず、2つの関数を作成して、andbackボタンが機能するようにする必要があります。 次の関数は、WebixのgetParentViewメソッドを使用して、クリックされたボタンのセルを含む参照を取得します(つまり、現在表示されているセル)。次に、MultiViewコンポーネント(FormContent)のID値を使用して、(ある場合)セルが次に来るかを計算します。次のセルがある場合、showメソッドを使用してビューに移行されます。バック関数は、バックメソッドを使用して、マルチビューを以前にアクティブビューにスイッチ
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="./codebase/webix.css"</span>></span> </span><span><span><span><script</span> src<span>="./codebase/webix.js"</span>></span><span><span></script</span>></span> </span>
これがどのように見えるか見てみましょう:
今行ったことを見てみましょう:
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="http://cdn.webix.com/edge/webix.css"</span>></span> </span><span><span><span><script</span> src<span>="http://cdn.webix.com/edge/webix.js"</span>></span><span><span></script</span>></span> </span>
次のボタンをクリックすると、フォームの次の部分が表示されます。
そして、すべてが予想どおりに機能するかどうかを確認しましょう:
そうです!これが最終的なデモです:
CodepenのSitePoint(@SitePoint)のペンAnjldoを参照してください
結論
プロジェクトでWebixを使用していますか?このチュートリアルはあなたにそれを試してみるように促しましたか?以下のコメントでお知らせください。
Webixフレームワークに関するよくある質問(FAQ)Webixは、アプリケーションの外観をカスタマイズする方法をいくつか提供します。 CSSを使用してUIコンポーネントのスタイルを設定することも、Webixが提供する多くの事前に作成されたスキンのいずれかを使用できます。さらに、Webixを使用すると、Skin Builderツールを使用して独自のカスタムスキンを作成することもできます。公式WebixのWebサイトには、豊富なドキュメントと例、および質問をしてコミュニティから助けを得ることができるフォーラムが提供されています。さらに、Webixは、Webix開発チームへの直接アクセスを含むプレミアムサポートパッケージも提供しています。無料バージョンには、限られたウィジェットと機能が含まれていますが、有料版はすべてのウィジェットと機能へのアクセスとプレミアムサポートを提供します。
Webixの詳細については、公式WebixのWebサイトにアクセスすることが最善の方法です。ここでは、ドキュメント、例、チュートリアルなど、豊富な情報やリソースを見つけることができます。 GitHubのWebixコミュニティに参加することもできます。ここでは、追加のリソースを見つけて、他のWebix開発者と接続できます。以上がWebixフレームワークでフォームを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。