Ширина текстового поля меняется в зависимости от количества HtmlAttributes - PullRequest
0 голосов
/ 19 октября 2018

У меня есть следующий файл cshtml:

@using UniHockey.Models
@model UniHockey.Models.Game
@{
    ViewBag.Title = "Game";
}
<div id="Team1PlayerScores">
@for (int i = 0; i < Model.Team1.Players.Count; i++)
    {
        @Html.DisplayFor(m => Model.Team1.Players[i].Name)
        @Html.EditorFor(m => Model.Team1.Players[i].GoalsForCurrentGame, new { htmlAttributes = new { min = 0, max = 99, onchange = "updateTeamScore('Team1PlayerScores', 'Team1Score')" } })
    }

</div>

Я заметил, что ширина текстового поля изменяется в зависимости от комбинации атрибутов HTML, которые я применяю в методе Html.EditorFor().

Вот два разных размера, которые я получаю:

small

big

Вот таблица истинностиЯ использовал для тестирования всех комбинаций 3 атрибутов (где 1 означает, что атрибут был применен):

min max onchange
001 - big
010 - big
011 - big
100 - big
101 - big
110 - small
111 - small

Как вы можете видеть, текстовое поле всегда большое, если только ОБА не присутствуют атрибуты min и max HTML, еслиотсутствует хотя бы одно, ширина текстового поля велика.

Вот HTML-код, созданный вспомогательным методом Html.EditFor():

Большое текстовое поле:

Travis<input class="text-box single-line" data-val="true" data-val-number="The field GoalsForCurrentGame must be a number." data-val-required="The GoalsForCurrentGame field is required." id="Team1_Players_0__GoalsForCurrentGame" min="0" name="Team1.Players[0].GoalsForCurrentGame" onchange="updateTeamScore(&#39;Team1PlayerScores&#39;, &#39;Team1Score&#39;)" type="number" value="0" />
</div>

Маленькийтекстовое поле:

Travis<input class="text-box single-line" data-val="true" data-val-number="The field GoalsForCurrentGame must be a number." data-val-required="The GoalsForCurrentGame field is required." id="Team1_Players_0__GoalsForCurrentGame" max="99" min="0" name="Team1.Players[0].GoalsForCurrentGame" type="number" value="0" />
</div>

Почему это происходит?

РЕДАКТИРОВАТЬ:

Это CSS для большого текстового поля:

element.style {
}
user agent stylesheet
input:not([type]), input[type="email" i], input[type="number" i], input[type="password" i], input[type="tel" i], input[type="url" i], input[type="text" i] {
    padding: 1px 0px;
}
user agent stylesheet
input {
    -webkit-appearance: textfield;
    background-color: white;
    -webkit-rtl-ordering: logical;
    cursor: text;
    padding: 1px;
    border-width: 2px;
    border-style: inset;
    border-color: initial;
    border-image: initial;
}
user agent stylesheet
input, textarea, select, button {
    text-rendering: auto;
    color: initial;
    letter-spacing: normal;
    word-spacing: normal;
    text-transform: none;
    text-indent: 0px;
    text-shadow: none;
    display: inline-block;
    text-align: start;
    margin: 0em;
    font: 400 13.3333px Arial;
}
user agent stylesheet
input, textarea, select, button, meter, progress {
    -webkit-writing-mode: horizontal-tb !important;
}

и когда оно маленькое:

element.style {
}
user agent stylesheet
input:not([type]), input[type="email" i], input[type="number" i], input[type="password" i], input[type="tel" i], input[type="url" i], input[type="text" i] {
    padding: 1px 0px;
}
user agent stylesheet
input {
    -webkit-appearance: textfield;
    background-color: white;
    -webkit-rtl-ordering: logical;
    cursor: text;
    padding: 1px;
    border-width: 2px;
    border-style: inset;
    border-color: initial;
    border-image: initial;
}
user agent stylesheet
input, textarea, select, button {
    text-rendering: auto;
    color: initial;
    letter-spacing: normal;
    word-spacing: normal;
    text-transform: none;
    text-indent: 0px;
    text-shadow: none;
    display: inline-block;
    text-align: start;
    margin: 0em;
    font: 400 13.3333px Arial;
}
user agent stylesheet
input, textarea, select, button, meter, progress {
    -webkit-writing-mode: horizontal-tb !important;
}

Это один и тот же CSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...