2016-07-29 54 views
1

这是我的形式,我想调用Create ActionResut如果我不找到JSON结果方法的对象:如何在提交按钮ASP.NET调用preventDefault()后提交表单我试图调用提交功能在我的表单上,但没有什么我被困住?

@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

在'form'元素上调用'.submit()'? – David

+0

不,它不工作我试过thx – jhony3

+0

我没有看到任何*** ASP.Net ***在你的代码 - 甚至没有按钮服务器控制。 – Win

回答

0

您是在jQuery文档就绪函数内进行连接吗?类似于

$(function() { 
    $("#btnSave").click(function(e){ 
    e.preventDefault(); 
    ... 
}); 

我不知道你的点击处理程序是不是因为在元素实际存在之前运行click事件的JavaScript运行而没有触发。在这种情况下,jQuery将无错运行,但事件不会触发,您将获得默认行为。

+0

我的点击事件被解雇了,但是如果我的$ .getJson没有返回对象,我想再次提交我用$(“#form”)。 – jhony3

+0

我试过这样'if(zahtjev!= null){e.preventDefault()} else {$(“#form”)。submit()};' – jhony3

0

您可以input类型更改你button

<input type="button" id="btnSave" value="Unesi" class="btn btn-success"/> 

然后提交form使用手动.submit()与你形成ID

喜欢的东西:

$("#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); 
    }); 

}); 

希望这会有所帮助。如有任何问题,请告知我。谢谢

+0

我试过它对我来说不起作用。 – jhony3