2010-06-01 30 views
15

我試圖將焦點設置在其上按以下方式生成的文本框:如何設置集中到一個文本框Html.TextBoxFor - MVC 2

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

我試圖使用JavaScript這沒有多大幫助:

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

如何將焦點設置爲文本框Html.TextBoxFor在mvc 2中?

回答

29

你在哪寫這個javascript?你需要確保在DOM載入:

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

而且HTML助手可能會生成根據上下文不同的ID:例如,如果你調用一個編輯器模板中的TextBoxFor

說了這個,這不是我推薦你的解決方案。要解決所有這些問題我通常運用CSS類文本框:

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

其中email類是這樣定義的:

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

,然後使用popular javascript framework設置對焦當DOM準備好:

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

所以底線,我在哪裏放置該腳本,設置焦點 – Shimmy 2012-11-06 02:20:01

+0

你可以把它放在一個JavaScript文件,這是腳本通常去的地方。如果該腳本包含在DOM的末尾,則不再需要將焦點調用包裝在'document.ready'處理程序中。 – 2012-11-06 06:43:59

7

您可以使用自動對焦HTML5<%=Html.TextBoxFor(model => model.Email, new { style = "width:190px;Border:0px", maxsize = 190 ,autofocus = "autofocus" })%>

相關問題