这是我的表单,如果我没有找到任何带有JSON结果方法的对象,我想调用Create ActionResut:
@using (Html.BeginForm("Create", "InspekcijskeKontrole", FormMethod.Post, new { id = "forma1"}))
{ @ Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Inspekcijska kontrola</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.InspekcijskoTijeloId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("InspekcijskoTijeloId", null,"Odaberite inspekcijsko tijelo.....", new { @class = "form-control", @id="kombo3" })
@Html.ValidationMessageFor(model => model.InspekcijskoTijeloId, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.ProizvodId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("ProizvodId", null,"Odaberite proizvod.....", new { @class = "form-control", @id="kombo4" })
@Html.ValidationMessageFor(model => model.ProizvodId, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.DatumInspekcijskeKontrole, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.DatumInspekcijskeKontrole, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.DatumInspekcijskeKontrole, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Rezultat, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Rezultat, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Rezultat, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.ProizvodSiguran, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<div class="checkbox">
@Html.EditorFor(model => model.ProizvodSiguran)
@Html.ValidationMessageFor(model => model.ProizvodSiguran, "", new { @class = "text-danger" })
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="button" id="btnSave" value="Unesi" class="btn btn-success"/>
</div>
</div>
</div>
这是我想要在提交表单之前执行的方法我阻止使用e.preventDefault()进行提交。此方法检查数据库中是否存在某些内容但是如何返回sumbit,如何取消此e.preventDefault()如果没有值来执行提交事件而不是点击?
$("#btnSave").click(function(e){
e.preventDefault();
var zahtjev = $.getJSON("/InspekcijskeKontrole/Check?id1=" + $("#kombo3").val() + "&id2=" + $("#kombo4").val());
zahtjev.done(function (data) {
if (data.InspekcijskoTijeloId != -1 && data.ProizvodId != -1) {
$.getJSON("/Proizvodi/VratiIme/" + data.ProizvodId, function (ime) {
if (ime != null) {
$("#modalni1 p").text("Inspekcijska kontrola za " + ime + " je vec izvrsena");
$("#modalni1").modal({ backdrop: "static" });
}
});
}
});
zahtjev.fail(function (greska) {
$("#sp1").text(greska.responseText);
});
});
答案 0 :(得分:0)
你是否在jQuery文档就绪函数中进行了连接?像
这样的东西$(function() {
$("#btnSave").click(function(e){
e.preventDefault();
...
});
我想知道你的点击处理程序是否没有被触发,因为连接click事件的JavaScript在元素实际存在之前运行。在这种情况下,jQuery将无错误地运行,但事件不会触发,您将获得默认行为。
答案 1 :(得分:0)
您可以将input
类型更改为button
<input type="button" id="btnSave" value="Unesi" class="btn btn-success"/>
然后使用form
以表格ID
.submit()
类似的东西:
$("#btnSave").click(function(e){
e.preventDefault();
var zahtjev = $.getJSON("/InspekcijskeKontrole/Check?id1=" + $("#kombo3").val() + "&id2=" + $("#kombo4").val());
zahtjev.done(function (data) {
if (data.InspekcijskoTijeloId != -1 && data.ProizvodId != -1) {
$.getJSON("/Proizvodi/VratiIme/" + data.ProizvodId, function (ime) {
if (ime != null) {
$("#modalni1 p").text("Inspekcijska kontrola za " + ime + " je vec izvrsena");
$("#modalni1").modal({ backdrop: "static" });
}
});
}
$(#yourFormidHere).submit(); //if you want to submit here for example
});
zahtjev.fail(function (greska) {
$("#sp1").text(greska.responseText);
});
});
希望这会有所帮助。如有任何问题,请告诉我。谢谢