2010-06-01 8 views
15

मैं एक पाठ बॉक्स जो निम्नलिखित तरीके से उत्पन्न होता है पर ध्यान केंद्रित करने के लिए सेट करने के लिए कोशिश कर रहा हूँ:मैं कैसे एक पाठ बॉक्स Html.TextBoxFor को ध्यान केंद्रित करने के लिए सेट करते हैं - MVC 2

<%=Html.TextBoxFor(model => model.Email, new { style = "width:190px;Border:0px", maxsize = 190 })%> 

मैं जावास्क्रिप्ट का उपयोग करने की कोशिश की जो बहुत मदद नहीं की:

<script type="text/javascript"> 
     var txtBox = document.getElementById("Email"); 
     if (txtBox != null) txtBox.focus(); 
    </script> 

मैं एक टेक्स्ट बॉक्स पर ध्यान केंद्रित कैसे कर सकता हूं HTML.extBoxFor mvc 2 में?

उत्तर

29

आप इस जावास्क्रिप्ट को कहां लिख रहे हैं? आप यह सुनिश्चित करें कि डोम भरी हुई है बनाने की जरूरत है: उदाहरण के लिए आप TextBoxFor एक संपादक टेम्पलेट के अंदर बुला रहे हैं, तो:

window.onload = function() { 
    var txtBox = document.getElementById("Email"); 
    if (txtBox != null) { 
     txtBox.focus(); 
    } 
}; 

इसके अलावा एचटीएमएल सहायकों संदर्भ के आधार पर एक अलग आईडी बनाते हैं हो सकता है।

यह कहकर यह समाधान नहीं है जो मैं आपको अनुशंसा करता हूं। उन सभी समस्याओं का समाधान करने के लिए मैं आम तौर पर पाठ बॉक्स के लिए एक सीएसएस वर्ग लागू होते हैं:

<%=Html.TextBoxFor(
    model => model.Email, 
    new { @class = "email", maxsize = "190" }) %> 

जहां email वर्ग इस तरह परिभाषित किया गया है:

.email { 
    width: 190px; 
    border: 0; 
} 

और फिर एक popular javascript framework का उपयोग फोकस सेट करने के लिए जब डोम है तैयार:

$(function() { 
    $('input.email').focus(); 
}); 
+0

तो नीचे की रेखा, मैं उस स्क्रिप्ट को कहां रखूं जो ध्यान केंद्रित करता है – Shimmy

+0

आप इसे जावास्क्रिप्ट फ़ाइल में डाल सकते हैं, जहां स्क्रिप्ट आमतौर पर जाते हैं। यदि यह स्क्रिप्ट डीओएम के अंत में शामिल है, तो आपको अब 'document.ready' हैंडलर में फोकस कॉल को लपेटने की आवश्यकता नहीं है। –

7

आप HTML5 में ऑटोफोकस का उपयोग कर सकते हैं। <%=Html.TextBoxFor(model => model.Email, new { style = "width:190px;Border:0px", maxsize = 190 ,autofocus = "autofocus" })%>

संबंधित मुद्दे