нужно сделать так, чтоб кнопка Save
блокировалась, если UserName
пустой. Но не понимаю как это сделать)
<script>
function agreeForm(f)
{
if (f.UserName = "")
f.Save.disabled = "1"
}
</script>
<form asp-controller="Calculator" asp-action="Edit" method="post">
@Html.HiddenFor(m => m.ErrorCode)
@Html.HiddenFor(m => m.Id)
<table>
<tr>
<th>Computer name:</th>
<th>User Name:</th>
<th>Expression:</th>
<th>Result:</th>
<th>Error:</th>
<th>Date:</th>
</tr>
<tr>
<td>@Html.EditorFor(m => m.ComputerName)</td>
<td>@Html.EditorFor(m => m.UserName)</td>
<td>@Html.EditorFor(m => m.Expression)</td>
<td>@Html.EditorFor(m => m.Result)</td>
<td>@Html.EditorFor(m => m.Description)</td>
<td>@Html.EditorFor(m => m.Date)</td>
</tr>
</table>
<input type="submit" name="Save" class="btn btn-default" value="Save" disabled="0" onchange="agreeForm(this.form)"/>
</form>
ASP.NET Razor генерирует статическую разметку. Динамическое поведение необходимо делать вручную, на JS.
В обработчике вы присваеваете (=
) вместо сравнения (===
) и лишь пытаетесь блокировать кнопку, но никогда ее не разблокируете (...disabled = false
)
Кроме того, у вас достаточно примитивное правило валидации, здесь можно обойтись возможностями HTML5 - с аттрибутом required
, вообще без JS, например:
<form>
<label for="choose" required>Would you prefer a banana or cherry?</label>
<input id="choose">
<button>Submit</button>
</form>
Кнопка submit просто не нажмется, пока не удовлетворены все валидационные правила.
ЗЫ Проверку необходимо обязательно продублировать на сервере.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня такая структура шаблона:
Хочу отметить, что у меня Visual Studio 2019, пакет v142Как мне создать проект для работы с win 32 api