javascript - 模态表单让我的屏幕被阻塞
问题描述
您有以下执行我的控制器的 POST 方法的模态表单
我的观点:
<div class="modal fade" id="agregarProducto">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
<form id="myForm">
<label>Agregar Cantidad</label>
<input type="checkbox" id="idcheckcantidad" />
<input type="text" class="form-control" name="cantidad" id="idcantidad" disabled="disabled" />
<label>Codigo Producto</label>
<input type="text" class="form-control" name="codigoproducto" id="idcodigoproducto" autofocus="true" />
</form>
</div>
<div class="modal-footer">
<input type="submit" value="Agregar Material" class="btn btn-primary" id="btnSubmit" />
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
</div>
</div>
</div>
</div>
执行 post 方法的 javascript 如下...
<script>
$(document).ready(function () {
$("#btnSubmit").click(function () {
var myformdata = $("#myForm").serialize();
$.ajax({
type: "POST",
url: "/Despachos/AgregarProducto",
data: myformdata,
success: function () {
$("#agregarProducto").modal("hide");
}
})
})
})
</script>
问题是当我完成执行 Agregar Producto 方法时,我的屏幕被阻塞并且很暗
我的控制器:
[HttpPost]
public ActionResult AgregarProducto(int codigoproducto, int? cantidad)
{
//CONSULTO LOS PRODUCTOS QUE EXISTEN EN EL DETALLE
var despachotmp = db.DespachoDetalleTmps.Where(o => o.Email == User.Identity.Name && o.Kn_CodigoProducto == codigoproducto).FirstOrDefault();
if (despachotmp == null)
{
//BUSCO EL PRODUCTO
var producto = db.Productoes.Find(codigoproducto);
if (producto == null)
{
ViewBag.Error = "Debe Seleccionar un Producto o Material Válido";
return RedirectToAction("Create");
}
if (cantidad == null)
{
despachotmp = new DespachoDetalleTmp
{
v_Nombre = producto.v_Nombre,
Kn_CodigoProducto = producto.Kn_CodigoProducto,
Email = User.Identity.Name,
d_Cantidad = 1,
};
db.DespachoDetalleTmps.Add(despachotmp);
}
if (cantidad != null)
{
despachotmp = new DespachoDetalleTmp
{
v_Nombre = producto.v_Nombre,
Kn_CodigoProducto = producto.Kn_CodigoProducto,
Email = User.Identity.Name,
d_Cantidad = Convert.ToInt16(cantidad),
};
db.DespachoDetalleTmps.Add(despachotmp);
}
}
else
{
if (cantidad == 0)
{
despachotmp.d_Cantidad += 1;
db.Entry(despachotmp).State = EntityState.Modified;
}
if (cantidad != 0)
{
despachotmp.d_Cantidad += Convert.ToInt16(cantidad);
db.Entry(despachotmp).State = EntityState.Modified;
}
}
db.SaveChangesAsync();
return RedirectToAction("Create");
}
我究竟做错了什么?为什么我会出现这种行为?对我有什么帮助吗?
解决方案
问题是因为你的脚本。您可以使用以下代码关闭模式。
$("#agregarProducto").hide();
您可以按照以下代码:
<script>
$(document).ready(function () {
$("#btnSubmit").click(function () {
var myformdata = $("#myForm").serialize();
$.ajax({
type: "POST",
url: "/Despachos/AgregarProducto",
data: myformdata,
success: function () {
$("#agregarProducto").hide();
}
})
})
})
</script>
试试这个代码。祝你好运!
推荐阅读
- haskell - 如何防止输入被冲入输出?
- javascript - Mongoose 填充并按填充字段搜索
- firebase - 多个数据库的 Firebase 身份验证规则
- pine-script - 未触发 Pinescript 警报
- sql-server - 用于 Windows 身份验证远程的数据原子 cson 配置
- google-apps-script - 当列不为空时自动包含/删除复选框
- java - 如何使用 for 循环打印对象的名称
- node.js - Microsoft bot 未从 Firebase 云功能做出响应
- google-sheets - 加入 importrange 和 Query
- angular - Angular,将选择器存储数据发送到子组件