Я считаю, что вам нужно что-то вроде этого:
var _maxLength = 500;
var _lengthInput = 0;
var input1 = document.getElementById("input1");
var input2 = document.getElementById("input2");
var p = document.getElementById("total");
p.innerHTML = _maxLength;
input1.addEventListener("focus", function(e) {
this.maxLength = _maxLength + this.value.length;
_lengthInput = this.value.length;
});
input1.addEventListener("blur", function(e) {
if (_lengthInput == this.value.length)
return;
if (_lengthInput > this.value.length) {
_maxLength += _lengthInput - this.value.length;
} else {
_maxLength -= this.value.length - _lengthInput;
}
total.innerHTML = _maxLength;
});
input2.addEventListener("focus", function(e) {
this.maxLength = _maxLength + this.value.length;
_lengthInput = this.value.length;
});
input2.addEventListener("blur", function(e) {
if (_lengthInput == this.value.length)
return;
if (_lengthInput > this.value.length) {
_maxLength += _lengthInput - this.value.length;
} else {
_maxLength -= this.value.length - _lengthInput;
}
total.innerHTML = _maxLength;
});
Input 1 <input type="text" id="input1">
<br /> Input 2 <input type="text" id="input2">
<br />
<p>Characters remaining: <span id="total"></span> </p>
[DisplayName("Start Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime StartDate { get; set; }
Затем:
<%=Html.EditorFor(m => m.StartDate) %>
Можно использовать ниже кода для печати времени в формат HH:mm В моем случае , тип Свойства является TimeSpan, Таким образом, значение прибывает в формат HH:mm:tt, но я должен показать в вышеупомянутом формате т.е. HH:mm
, Таким образом, можно использовать этот код:
@Html.TextBoxFor(x =>x.mTimeFrom, null, new {@Value =Model.mTimeFrom.ToString().Substring(0,5), @class = "form-control success" })
TL; DR;
@Html.TextBoxFor(m => m.DOB,"{0:yyyy-MM-dd}", new { type = "date")
Применение [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
не удалось для меня!
Объяснение:
для отображения свойства даты модели с помощью Html.TextBoxFor
:
Ваше свойство даты Вашего образцового класса:
public DateTime DOB { get; set; }
Ничто иное не необходимо на образцовой стороне.
В Бритве Вы делаете:
@Html.TextBoxFor(m => m.DOB,"{0:yyyy-MM-dd}", new { type = "date")
Объяснение:
дата элемента html input
типа date
должна быть отформатирована относительно [1 110] ISO8601, который является: yyyy-MM-dd
отображенная дата отформатирована на основе локали браузера пользователя, но проанализированное значение всегда форматируется yyyy-mm-dd.
Мой опыт, что язык не определяется Accept-Language
заголовок, но или языком дисплея браузера или системным языком ОС.
Не бойтесь использовать сырой HTML.
<input type="text" value="<%= Html.Encode(Model.SomeDate.ToShortDateString()) %>" />
Или используйте нетипизированные помощники:
<%= Html.TextBox("StartDate", string.Format("{0:d}", Model.StartDate)) %>