ユーザーが入力した数値がデータベースに存在するかどうかを検証したいので、JSON オブジェクトを返し、サーバーに投稿する前に入力を確認するアクションがあります。問題は、常に false を返すことです。
Javascript:
<script type="text/javascript">
var pid = $("#ProductID").val();
var flag = false;
$("#button1").click(function () {
$.get('/Invoice/GetData',
function (data) {
for (var i = 0; i < data.length; i++) {
if (data[i] == pid) {
flag = true;
}
}
});
if (flag == false) {
alert("Invalid Product ID");
location.reload();
return false;
}
else {
alert("validations passed");
return true;
}
});
</script>
フォーム (ASP.NET MVC4)
@using (Html.BeginForm("AddInvoiceDetails","Invoice",FormMethod.Post)) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Invoice_Detail</legend>
<div class="editor-label">
@Html.LabelFor(model => model.InvoiceID)
</div>
<div class="editor-field">
@Html.TextBox("InvoiceID", (String)ViewBag.invoiceid,new { @readonly="readonly" })
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ProductID)
</div>
<div class="editor-field">
@Html.EditorFor(model=>model.ProductID)
@Html.ValidationMessageFor(model => model.ProductID)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Quantity)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Quantity)
@Html.ValidationMessageFor(model => model.Quantity)
</div>
<p>
<input id="button1" type="submit" value="Create" />
</p>
</fieldset>
}