javascript - 为什么在提交并返回视图或redirectToAction之后找不到我的javascript方法
问题描述
这对我来说似乎很奇怪,我的 Edit_Dataset.cshtml 上有 javascript,效果很好!!这是底部带有我的 Javascript 的 Edit_Dataset.cshtml。我遇到的问题似乎很奇怪,我按下提交表单 [HttpPost] 的“SAVE”按钮,并在成功将表单数据保存到数据库后,无论我是执行 return 还是 redirectToAction(我基本上是从从头开始),找不到我的javascript函数。
示例:视图中有一个 AddContact 链接,带有 onclick("AddContact(id)"); 这将在屏幕上弹出模态框。有一个javascript函数:AddContact(id)
在“HttpPost”之前一切正常,但在“HttpPost”之后甚至执行“RedirectToAction(“Edit_Dataset”)”,我会收到以下错误和一个空模态。这是以下消息和空模态:
我的观点 :
@model ResearchDataInventoryWeb.Models.Dataset
@{
ViewBag.Title = "Edit_Dataset";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm(new { id = "datasetForm" }))
{
<div class="content">
<div class="Panel-header"> EDIT Dataset (Admin) </div>
<div class="Panel_container">
<div class="section_container">
<div class="col-md-6 col-sm-12 col-xs-12">
<div class="section_header2">
Contacts
<div style="float:right;">
<a href="#" onclick="AddContact(@Model.Dataset_ID);"><span class="link" style="padding-right:5px;">Add</span></a>
</div>
</div>
<div class="section_container2">
<div id="Container_ID">
@{ Html.RenderAction("Dataset_Contacts_Edit", "Dataset", new { id = Model.Dataset_ID }); }
</div>
</div>
</div>
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<a href="#" class="close" data-dismiss="modal">×</a>
<br />
<div class="Panel-header">Contact</div>
</div>
<div class="modal-body" id="myModalBody">
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<div class="modal fade" id="myModal2">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<a href="#" class="close" data-dismiss="modal">×</a>
<br />
<div class="Panel-header">Document</div>
</div>
<div class="modal-body" id="myModalBody2">
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<div class="modal fade" id="myModal3">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<a href="#" class="close" data-dismiss="modal">×</a>
<br />
<div class="Panel-header">View Contact</div>
</div>
<div class="modal-body" id="myModalBody3">
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<div class="modal fade" id="myModal4">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<a href="#" class="close" data-dismiss="modal">×</a>
<br />
<div class="Panel-header">Save Changes Dialog</div>
</div>
<div class="modal-body" id="myModalBody4">
<p>Changes have been detected, do you want to save the form</p>
@Html.CheckBoxFor(model => model.Draft_Status) <span class="display-checkbox">Save as Draft</span>
<input type="submit" id="postValidation" value="Save Changes" />
<input type="button" id="cancelForm" value="Cancel" data-dismiss="modal" />
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<div class="modal fade" id="myModal5">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<a href="#" class="close" data-dismiss="modal">×</a>
<br />
<div class="Panel-header">No Changes Dialog</div>
</div>
<div class="modal-body" id="myModalBody5">
<p>No Changes have been detected, do you wish to continue</p>
<input type="submit" id="postValidation" value="Save Changes" />
<input type="button" id="cancelForm" value="Cancel" data-dismiss="modal" />
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
@if (ViewBag.Success != null) {
<div class="modal fade" id="myModal6">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<a href="#" class="close" data-dismiss="modal">×</a>
<br />
<div class="Panel-header">Success Message</div>
</div>
<div class="modal-body" id="myModalBody6">
<p>Changes have been successfully Updated</p>
<input type="button" id="cancelForm" value="Ok" data-dismiss="modal" />
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
}
</div>
}
我的Javascript:
<script>
var formChangeFlag = false;
$('form').on('change', ':input', function (e) {
//':input' selector get all form fields even textarea, input, or select
formChangeFlag = true;
});
$("#saveDraft").click(function () {
$("#save_draft_Id").val(true);
})
$("#postValidation").click(function () {
$("#myModal4").modal("hide");
})
$("#postValidation1").click(function () {
$("#myModal5").modal("hide");
})
$(window).on('load', function () {
$('#myModal6').modal('show');
});
$("#saveForm").click(function (e) {
e.preventDefault();
if (formChangeFlag === true) {
$("#myModal4").modal("show");
}
else {
$("#myModal5").modal("show");
}
})
$(function () {
$(window).keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
return false;
}
});
})
function reloadContactLinks() {
let myurl = '@Url.Action("Dataset_Contacts_Edit", "Dataset", new { id = Model.Dataset_ID })';
$.ajax({
type: "GET",
url: myurl,
success: function (data, textStatus, jqXHR) {
$("#Container_ID").html(data);
},
error: function (requestObject, error, errorThrown) {
console.log(requestObject, error, errorThrown);
}
});
}
function reloadAttachmentLinks() {
let myurl = '@Url.Action("Dataset_Attachments_Edit", "Dataset", new { id = Model.Dataset_ID })';
$.ajax({
type: "GET",
url: myurl,
success: function (data, textStatus, jqXHR) {
$("#Container2_ID").html(data);
},
error: function (requestObject, error, errorThrown) {
console.log(requestObject, error, errorThrown);
}
});
}
var AddContact = function (id) {
var url = "../Dataset/AddContact/" + id
$("#myModalBody").load(url, function () {
$("#myModal").modal("show");
})
};
var EditContact = function (id) {
var url = "../Dataset/EditContact/" + id
$("#myModalBody").load(url, function () {
$("#myModal").modal("show");
})
};
var AddDocument = function (id) {
var url = "../Dataset/AddDocument/" + id
$("#myModalBody2").load(url, function () {
$("#myModal2").modal("show");
})
};
var EditDocument = function (id) {
var url = "../Dataset/EditDocument/" + id
$("#myModalBody2").load(url, function () {
$("#myModal2").modal("show");
})
};
var ViewContact = function (ContactID) {
var url = "../Dataset/ViewContact?Id=" + ContactID
$("#myModalBody3").load(url, function () {
$("#myModal3").modal("show");
})
};
var checkButtonDt = function () {
var SR_chkYes = document.getElementById("SR_ChkYes");
var RE_chkYes = document.getElementById("RE_ChkYes");
var DD_chkYes = document.getElementById("DD_ChkYes");
var SR_chkNo = document.getElementById("SR_ChkNo");
var RE_chkNo = document.getElementById("RE_ChkNo");
var DD_chkNo = document.getElementById("DD_ChkNo");
var SR_chkDt = document.getElementById("SR_Date");
var RE_chkDt = document.getElementById("RE_Date");
var DD_chkDt = document.getElementById("DD_Date");
var DD_special = document.getElementById("DD_Special");
SR_chkDt.style.display = SR_chkYes.checked ? "block" : "none";
RE_chkDt.style.display = RE_chkYes.checked ? "block" : "none";
DD_chkDt.style.display = DD_chkYes.checked ? "block" : "none";
DD_special.style.display = DD_chkYes.checked ? "block" : "none";
if (SR_chkNo.checked) {
$("#Subscription_Renewal_DT").val("");
}
if (RE_chkNo.checked) {
$("#Retention_Expiry_DT").val("");
}
if (DD_chkNo.checked) {
$("#Data_Destruction_DT").val("");
$("#Data_Destruction_Instructions").val("");
}
}
</script>
解决方案
推荐阅读
- javascript - 是否可以通过 JS 字符串在 HTML 中创建断线?
- javascript - 当你需要在Angular8中通过导航将数据传递给另一个组件时,最安全和最有效的方法是什么?
- python - 如何更改 Matplotlib 3d 旋转(mplot3d)的鼠标交互方式?
- javascript - 谷歌应用脚本关于如何从从其电子表格的 html 表单接收到的数据创建 pdf 并通过电子邮件发送 pdf 文件
- okta - 如何登录到使用 OKTA 进行身份验证的任意网页?
- javascript - React Material UI - 使滑块更新状态
- java - Netty 和 Undertow 的区别
- pivot - 您将如何转换具有可变 ID 位置数量的表,以使位置成为列?
- node.js - ERR_NAME_NOT_RESOLVED 使用 Docker 网络在后端容器和 React 容器之间进行通信
- flutter - 从 Flutter 的另一个屏幕调用 Future 函数