私の見解では、検索フィールドがありid = searchPrimaryTrade
ます。一次取引が見つかって提出されることが要件です。
jquery を使用して、選択した取引の ID を隠しフィールドにコピーします。
@Html.HiddenFor(model => model.PrimaryTradeId)
ユーザーが一次取引を入力しない場合、エラー メッセージが表示されます。
ただし、私がやりたいことは、同じ検証 CSS スタイルを検索テキスト フィールドにトリガーし、その横にマーカー(id = searchPrimaryTrade)
を表示することです。*
つまり、テキスト ボックスに赤い枠を付けたいのです。
以下のコードでは、companyName が入力されていない場合に発生します。では、これを行うにはどうすればよいですか?
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
ViewContext.FormContext.ValidationSummaryId = "valSumId";
@Html.ValidationSummary(false, "Please fix these errors.", new Dictionary<string, object> { { "id", "valSumId" } });
<fieldset>
<legend>Create Subcontractor</legend>
<p class="highlight">@ViewBag.Message</p>
<table class="formTable">
<tr>
<td class="leftCell">@Html.LabelFor(model => model.Subcontractor.CompanyName) </td>
<td class="rightCell">@Html.TextBoxFor(model => model.Subcontractor.CompanyName, new { @style = "width: 300px;" })
@Html.ValidationMessageFor(model => model.Subcontractor.CompanyName, "*")</td>
</tr>
<tr>
<td class="leftCell">@Html.LabelFor(model => model.PrimaryTrade)</td>
<td class="rightCell"><input type="search" name="searchPrimaryTrade" id="searchPrimaryTrade" data-scd-autocomplete="@Url.Action("AutocompletePrimaryTrade", "DataService")" style = "width: 300px;" data-val="true" data-val-required="Must enter a Primary Trade" class="primaryTrade required"/>
<input type="button" id="ResetPrimaryTrade" value="Reset"/><br/>
@Html.HiddenFor(model => model.PrimaryTradeId)
@Html.ValidationMessageFor(model => model.PrimaryTradeId, "*")
Cannot find the trade? @Html.DialogFormButton("Add New Trade", Url.Action("AddTrade", "Popup"), "Add New Trade", null, Url.Action("Create"), "buttonAddNewTrade")
</td>
</tr>