Как я устанавливаю фокус на текстовое поле 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?

15
задан Matthieu 14 February 2012 в 21:11
поделиться

1 ответ

Где вы пишете этот 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;
}

и затем использую популярный javascript-фреймворк для установки фокуса, когда DOM готов:

$(function() {
    $('input.email').focus();
});
29
ответ дан 1 December 2019 в 01:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: