सामग्री पर जाएँ
मेनू
भाषा, अभी हिन्दी
EnglishGaeilge简体中文Españolहिन्दीPortuguêsবাংলাРусский日本語廣東話Tiếng Việtالعربية

rastrillo डिज़ाइन सिस्टम

डिज़ाइन सिस्टम जो कुछ देता है, उसका अवलोकन। थीम: plain। भाषा: हिन्दी

फ़ॉर्म

हर नियंत्रण, उन्हीं स्थितियों में जिनमें कोई असली फ़ॉर्म उसे रखता है। हर एक पैडिंग वाले rst-box में बैठता है, क्योंकि ये पार्शियल यही मानकर चलते हैं।

पहले से बने, आपस में एक जैसे UI तत्व, जो सर्वर पर रेंडर होते हैं।

फ़्रेमवर्क की अपनी शब्दावली इन्हें partial कहती है: ui.Templates() partial लौटाता है, और docs/site/templates.md उन्हें उसी नाम से दर्ज करता है। इस पेज का शब्द बदला है; कोड का नहीं।

यहाँ के लिंक निष्क्रिय हैं

लिंक निष्क्रिय, नमूने का स्रोत साथ में दिया गया है।

नीचे का हर नमूना अपने ही फ़्रेम में है।

नमूना सामग्री अंग्रेज़ी में। नमूना शेल अनूदित हैं।

field

लेबल, इनपुट, वैकल्पिक संकेत, सहायता और त्रुटि। सामान्य टेक्स्ट जैसा कंट्रोल, स्पष्ट ID के साथ।

सादा

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="f_bare">Title</label>
<input rst-input type="text" id="f_bare" name="f_bare">
</div></form></section>

एक संकेत के साथ

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="f_hint">Slug <span rst-field-hint>(lowercase, no spaces)</span></label>
<input rst-input type="text" id="f_hint" name="f_hint">
</div></form></section>

नियंत्रण के नीचे सहायता के साथ

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="f_help">Email</label>
<input rst-input type="email" id="f_help" name="f_help" autocomplete="email" aria-describedby="f_help-help">
<p rst-field-help id="f_help-help">We only use this to send you replies.</p>
</div></form></section>

अनिवार्य

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="f_required">Full name</label>
<input rst-input type="text" id="f_required" name="f_required" required>
</div></form></section>

त्रुटि के साथ

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="f_error">Email</label>
<input rst-input type="email" id="f_error" name="f_error" value="grace@" aria-invalid="true" aria-describedby="f_error-error">
<p rst-field-error id="f_error-error" role="alert">That does not look like an email address.</p>
</div></form></section>

छोटा

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="f_short">Postcode</label>
<input rst-input="short" type="text" id="f_short" name="f_short" value="D02 XY45">
</div></form></section>

मुख्य फ़ील्ड

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="f_primary">Title</label>
<input rst-input="primary" type="text" id="f_primary" name="f_primary" value="Quarterly board meeting">
</div></form></section>

field-text

एक लेबल वाला टेक्स्ट इनपुट, ids Name से बनते हैं। अनिवार्य चिह्न का तारा aria-hidden है। प्रोग्रामेटिक संकेत इनपुट का required एट्रिब्यूट है।

सादा

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field>
  <label rst-field-label for="ft_bare">Title</label>
  <input rst-input id="ft_bare" name="ft_bare" type="text">
</div></form></section>

एक संकेत के साथ

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field>
  <label rst-field-label for="ft_hint">Headline</label>
  <input rst-input id="ft_hint" name="ft_hint" type="text" aria-describedby="ft_hint-hint">
  <small rst-field-hint id="ft_hint-hint">Shown in the list.</small>
</div></form></section>

अनिवार्य

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field>
  <label rst-field-label for="ft_required">Display name <span rst-field-required aria-hidden="true">*</span></label>
  <input rst-input id="ft_required" name="ft_required" type="text" autocomplete="nickname" required>
</div></form></section>

त्रुटि के साथ

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field>
  <label rst-field-label for="ft_error">Title</label>
  <input rst-input id="ft_error" name="ft_error" type="text" value="Release notes" aria-invalid="true" aria-describedby="ft_error-error">
  <small rst-field-error id="ft_error-error">A post with that title already exists.</small>
</div></form></section>

मुख्य फ़ील्ड

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field>
  <label rst-field-label for="ft_primary">What is it?</label>
  <input rst-input="primary" id="ft_primary" name="ft_primary" type="text" value="Quarterly board meeting">
</div></form></section>

फ़ॉर्म के मुख्य फ़ील्ड — जैसे शीर्षक या नाम — पर Primary लगाएँ, जिससे इनपुट अधिक प्रमुख दिखे।

field-textarea

field-text का आवरण, एक textarea के चारों ओर।

सादा

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field>
  <label rst-field-label for="ta_bare">Notes</label>
  <textarea rst-textarea id="ta_bare" name="ta_bare" rows="3"></textarea>
</div></form></section>

एक संकेत के साथ

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field>
  <label rst-field-label for="ta_hint">Bio</label>
  <textarea rst-textarea id="ta_hint" name="ta_hint" rows="3" aria-describedby="ta_hint-hint"></textarea>
  <small rst-field-hint id="ta_hint-hint">Shown on your profile.</small>
</div></form></section>

त्रुटि के साथ

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field>
  <label rst-field-label for="ta_error">Summary</label>
  <textarea rst-textarea id="ta_error" name="ta_error" rows="3" aria-invalid="true" aria-describedby="ta_error-error">…</textarea>
  <small rst-field-error id="ta_error-error">A summary needs at least twenty characters.</small>
</div></form></section>

अनिवार्य

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field>
  <label rst-field-label for="ta_required">Reason for refund <span rst-field-required aria-hidden="true">*</span></label>
  <textarea rst-textarea id="ta_required" name="ta_required" rows="3" required></textarea>
</div></form></section>

field-select

मूल select के चारों ओर field का आवरण। दस से ज़्यादा विकल्प होने पर select, select.js का छाँटने योग्य कॉम्बोबॉक्स चालू कर देता है; फ़ॉर्म फिर भी वही मूल select भेजता है।

तीन विकल्प: नेटिव select

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="sel_few">Role</label>
<select rst-input id="sel_few" name="sel_few"><option value="Admin" selected>Admin</option><option value="Editor">Editor</option><option value="Member">Member</option></select>
</div></form></section>

बारह विकल्प: फ़िल्टर करने योग्य कॉम्बोबॉक्स

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="sel_many">City</label>
<select rst-input id="sel_many" name="sel_many" data-rst-select data-rst-select-filter="फ़िल्टर करने के लिए टाइप करें" data-rst-select-results="{n} परिणाम" data-rst-select-result-one="1 परिणाम" aria-describedby="sel_many-help"><option value="Dublin" selected>Dublin</option><option value="Lisbon">Lisbon</option><option value="Madrid">Madrid</option><option value="Berlin">Berlin</option><option value="Rome">Rome</option><option value="Athens">Athens</option><option value="Helsinki">Helsinki</option><option value="Reykjavík">Reykjavík</option><option value="Warsaw">Warsaw</option><option value="Zagreb">Zagreb</option><option value="Tallinn">Tallinn</option><option value="Valletta">Valletta</option></select>
<p rst-field-help id="sel_many-help">Start typing to filter.</p>
</div></form></section>

दस से ज़्यादा विकल्प होने पर पार्शियल select.js चालू कर देता है। दस से कम पर नहीं: मुट्ठी भर चीज़ों में खोज सजावट है, मदद नहीं।

बारह विकल्प, Plain — संवर्धन से मना कर दिया गया

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="sel_plain">City</label>
<select rst-input id="sel_plain" name="sel_plain"><option value="Dublin" selected>Dublin</option><option value="Lisbon">Lisbon</option><option value="Madrid">Madrid</option><option value="Berlin">Berlin</option><option value="Rome">Rome</option><option value="Athens">Athens</option><option value="Helsinki">Helsinki</option><option value="Reykjavík">Reykjavík</option><option value="Warsaw">Warsaw</option><option value="Zagreb">Zagreb</option><option value="Tallinn">Tallinn</option><option value="Valletta">Valletta</option></select>
</div></form></section>

अनिवार्य, त्रुटि के साथ

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="sel_error">Role</label>
<select rst-input id="sel_error" name="sel_error" required aria-invalid="true" aria-describedby="sel_error-error"><option value="Admin" selected>Admin</option><option value="Editor">Editor</option><option value="Member">Member</option></select>
<p rst-field-error id="sel_error-error" role="alert">Pick a role for this person.</p>
</div></form></section>

हाथ से लिखा हुआ, optgroup के साथ

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-field><label rst-field-label for="sel_grouped">Region</label>
<select rst-input id="sel_grouped" name="sel_grouped" data-rst-select data-rst-select-filter="फ़िल्टर करने के लिए टाइप करें" data-rst-select-results="{n} परिणाम" data-rst-select-result-one="1 परिणाम">
<optgroup label="Europe"><option value="dublin" selected>Dublin</option><option value="lisbon">Lisbon</option><option value="warsaw">Warsaw</option></optgroup>
<optgroup label="Americas"><option value="montreal">Montréal</option><option value="lima">Lima</option><option value="austin">Austin</option></optgroup>
<optgroup label="Asia"><option value="osaka">Osaka</option><option value="hanoi">Hanoi</option><option value="dhaka">Dhaka</option></optgroup>
<optgroup label="Africa"><option value="accra">Accra</option><option value="nairobi">Nairobi</option><option value="tunis">Tunis</option></optgroup>
</select>
</div></form></section>

यहाँ Options एक सपाट सूची है, इसलिए समूहबद्ध विकल्प वह मार्कअप हैं जो ऐप्लिकेशन ख़ुद लिखता है। select.js समूहों को गिराने के बजाय दिखाता है; हाथ से लिखा select चाहे तो data-rst-select="false" से संवर्धन पूरी तरह मना कर सकता है।

field-check

टॉगल का इकलौता तरीक़ा: एक असली चेकबॉक्स, जिसे स्विच जैसा दिखाया गया है, कीबोर्ड और स्क्रीन रीडर ज्यों के त्यों।

चालू

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><label rst-switch><input type="checkbox" name="notify_on" checked><span rst-switch-track aria-hidden="true"></span> Email me about replies</label></form></section>

बंद

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><label rst-switch><input type="checkbox" name="notify_off"><span rst-switch-track aria-hidden="true"></span> Email me about mentions</label></form></section>

निष्क्रिय

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><label rst-switch><input type="checkbox" name="notify_disabled" disabled><span rst-switch-track aria-hidden="true"></span> Email me a weekly digest</label></form></section>

choice-field

विकल्प कार्ड — रेडियो या चेकबॉक्स समूह का पसंदीदा रूप। Title छोटा रहता है; समझाने का काम Desc करता है।

एक चुनें

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><fieldset rst-choice><legend>Plan</legend><div rst-choice-cards><label><input type="radio" name="plan" value="free"><span><span rst-choice-title>Free</span><span rst-choice-desc>One project, community support.</span></span></label><label><input type="radio" name="plan" value="pro" checked><span><span rst-choice-title>Pro</span><span rst-choice-desc>Unlimited projects and a support inbox.</span></span></label></div></fieldset></form></section>

जितने चाहें चुनें

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><fieldset rst-choice><legend>Send me</legend><div rst-choice-cards><label><input type="checkbox" name="digest" value="replies" checked><span><span rst-choice-title>Replies</span><span rst-choice-desc>As they happen.</span></span></label><label><input type="checkbox" name="digest" value="weekly"><span><span rst-choice-title>Weekly digest</span><span rst-choice-desc>Monday mornings.</span></span></label></div></fieldset></form></section>

form-foot

फ़ॉर्म की आख़िरी पंक्ति: एक मुख्य सबमिट और वैकल्पिक रद्द लिंक। रद्द एक लिंक है, क्योंकि फ़ॉर्म से बाहर जाना नेविगेशन है।

सहेजें और रद्द करें

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-form-foot>
  <button rst-btn="primary" type="submit">Save post</button>
  <a rst-btn href="/posts">Back to posts</a>
</div></form></section>

सिर्फ़ सबमिट

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-form-foot>
  <button rst-btn="primary" type="submit">Send invitation</button>
</div></form></section>

निष्क्रिय — कुछ भी होने से पहले का बटन

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-form-foot>
  <button rst-btn="primary" type="submit">Publish</button>
  <a rst-btn href="/posts">Back to posts</a>
</div></form></section>

जो बटन कुछ बदलता है, उसे लोडिंग स्थिति मिलती है; जो बटन सिर्फ़ कुछ दिखाता है — जैसे डिस्क्लोज़र, ड्रॉपडाउन, टैब — उसे नहीं। rastrillo.js यह नियम हर फ़ॉर्म के हर सबमिट बटन पर लगाता है, कुछ भी चालू करने की ज़रूरत नहीं।

काम चल रहा है — फ़ॉर्म जाते समय rastrillo.js जो लिखता है

पूर्वावलोकन
<section rst-box><form rst-form method="post" action="#"><div rst-form-foot>
<button rst-btn="primary" type="submit" aria-busy="true" data-idle-label="Publish" disabled><span rst-spin aria-hidden="true"></span>Publishing…</button>
<a rst-btn href="/posts">Back to posts</a>
</div></form></section>

सिर्फ़ वही बटन जिस पर क्लिक हुआ: फ़ॉर्म के बाकी सबमिट बटन अपना name और value रखते हैं, और फ़ॉर्म खुद दूसरी बार जाने से बचा रहता है। data-busy="false" से नियम छोड़ा जा सकता है, फ़ॉर्म पर या किसी एक बटन पर; data-busy-label टेक्स्ट बदल देता है। स्क्रिप्ट बंद हों तो इनमें से कुछ नहीं होता और फ़ॉर्म पहले की तरह ही जाता है, इसलिए idempotency अब भी सर्वर का काम है।

confirm-form

पुष्टि पृष्ठ की क्रिया पंक्ति। विनाशकारी क्रियाओं का अपना रूट होता है, कोई डायलॉग नहीं, इसलिए स्क्रिप्ट लिखने को कुछ बचता ही नहीं।

विनाशकारी

पूर्वावलोकन
<section rst-box><form rst-form-actions method="post" action="/posts/1/delete"><input type="hidden" name="csrf" value="tok-123"><input type="hidden" name="id" value="1"><a rst-btn="ghost" href="/posts/1">रद्द करें</a><button type="submit" rst-btn="danger">Delete this post</button></form></section>

सामान्य, रद्द के डिफ़ॉल्ट शब्दों के साथ

पूर्वावलोकन
<section rst-box><form rst-form-actions method="post" action="/posts/1/publish"><a rst-btn="ghost" href="/posts/1">रद्द करें</a><button type="submit" rst-btn="primary">Publish</button></form></section>

कोई CancelLabel नहीं, इसलिए रद्द लिंक के शब्द कैटलॉग से आते हैं।