2010-06-08 12 views
13

एचटीएमएल 5 में, ऑटोफोकस नामक टेक्स्टबॉक्स पर एक नई विशेषता है।Asp.Net Mvc - Html.TextBox - Autofocus प्रॉपर्टी सेट करें

समस्या

है कि यह (वहाँ या वहाँ नहीं) एक बूलियन मान है

यह कुछ ऐसा दिखाई देगा:

<input name="a" value="" autofocus> 

मैंने कोशिश की:

<%= Html.TextBox("a", null, new { autofocus }) %> 

लेकिन, यह देता है मुझे एक त्रुटि है क्योंकि मैं ऑटोफोकस के लिए कोई मान निर्धारित नहीं कर रहा हूं ...

मुझे पता है कि मैं इसे मैनुअल कर सकता हूं y, लेकिन क्या मैं इसे HTML के साथ कर सकता हूं। टेक्स्टबॉक्स?

उत्तर

23

<%= Html.TextBox("a", null, new { autofocus = "" }) %>

प्रयास करें HTML5 spec on boolean attributes के अनुसार: यदि विशेषता मौजूद है, अपने मूल्य या तो रिक्त स्ट्रिंग या एक मूल्य के लिए एक ASCII केस-संवेदी मैच है कि होना चाहिए

विशेषता का कैननिकल नाम, बिना किसी अग्रणी या पिछली सफेद जगह के।

तो या तो

  • <input name="a" value="" autofocus> या
  • <input name="a" value="" autofocus=""> या
  • <input name="a" value="" autofocus="autofocus">

मान्य होना चाहिए।

3

XHTML के रूप में, मानक तरीका इस तरह के एक बूलियन विशेषता सक्षम हो जाएगा करने के लिए:

<%=Html.TextBox("a", null, new { autofocus: "autofocus" }) %> 
3
:

<input name="a" value="" autofocus="autofocus" /> 

इसलिए, यह सोचते हैं कि अभी भी एचटीएमएल 5 में मान्य है, तो आपको निम्न कोड इस्तेमाल कर सकते हैं

इसके अलावा, आप कुछ अन्य विशेषताओं के साथ निम्न कर सकते हैं:

@Html.TextBoxFor(m => m.Email, new { @class = "class1", @placeholder = "Email", @autofocus = "autofocus" }) 

नोट: केवल बुद्धि जारी एच ऑटोफोकस यह है कि, आईई ब्राउज़र में, जब इनपुट नियंत्रण फोकस में होता है तो प्लेसहोल्डर टेक्स्ट प्रदर्शित नहीं होता है (यह आईई के साथ एक मुद्दा है)।