我在使用Telerik RadGrid的用户控件中有以下jQuery:
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.4.js"></script>
<script type="text/javascript">
var warnMessage = "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save and Continue button, your changes will be lost. Are you sure you want to exit this page?";
$(document).ready(function () {
$('input:not(:button,:submit),textarea,select').change(function () {
window.onbeforeunload = function () {
if (warnMessage != null) return warnMessage;
}
});
$('input:not(:button,:submit),textarea,select').on('DOMNodeRemoved', function () {
window.onbeforeunload = function () {
if (warnMessage != null) return warnMessage;
}
});
$('input:submit').click(function (e) {
warnMessage = null;
});
});
</script>
&#13;
它的意图是让用户不使用其中一些控件点击页面而不保存更改。当我在VS2013中运行它时,它工作正常,在RadGrid中添加/更新/删除任何内容时触发弹出窗口,用户尝试离开页面而不保存。但是,在发布到测试服务器之后,永远不会点击.click,因此当用户尝试向网格添加另一个条目时,警告消息将再次触发,并且on DOMNodeRemoved永远不会工作。我在代码中做错了吗?或者服务器有问题吗?我是jQuery的新手,所以任何帮助都会非常感激。如果需要,我会发布更多信息。
答案 0 :(得分:0)
在查看测试服务器站点的控制台后,我发现我收到了“对象不支持属性或方法'addeventlistener'”错误。我去了网站的主页面并添加了一个元数据来检查兼容模式并修复它。
<?PHP
$tasks = $_GET['text'];
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename='myProject.csv'");
header("Pragma: no-cache");
header("Expires: 0");
$tasks = str_replace('</br>',"\n",$tasks);
echo $tasks;
exit();
?>
<强>更新强> 在更多地研究这个问题之后,并不是说JQuery本身并不工作,而是我的解决方案在IE9中工作的功能不存在。