我希望在文本框的内容发生变化时进行检测.我可以使用keyup方法,但这也会检测不生成字母的击键,如箭头键.我想到了使用keyup事件执行此操作的两种方法:
两者看起来都很麻烦.
我想在用户离开页面之前做出确认.如果他说好,那么它将重定向到新页面或取消离开.我尝试使用onunload来实现它
<script type="text/javascript">
function con() {
var answer = confirm("do you want to check our other products")
if (answer){
alert("bye");
}
else{
window.location = "http://www.example.com";
}
}
</script>
</head>
<body onunload="con();">
<h1 style="text-align:center">main page</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但它确认页面已经关闭后?怎么做得好?
如果有人用jQuery演示如何做到这一点会更好吗?
在input我看到这个jsfiddle之前,我从未听说过jQuery中的事件.
你知道它为什么有效吗?它是别名keyup还是什么?
$(document).on('input', 'input:text', function() {});
Run Code Online (Sandbox Code Playgroud) 它似乎默认禁用输入元素被忽略$.serialize().有解决方法吗?
在Firefox 3中,我能够编写一个自定义确认弹出窗口:
window.onbeforeunload = function() {
if (someCondition) {
return 'Your stream will be turned off';
}
}
Run Code Online (Sandbox Code Playgroud)
现在在Firefox 4中,它不会显示我的自定义消息.它提供的默认消息甚至不能准确应用我的应用程序.

可以覆盖此默认消息吗?
我想在主文件中编写Jquery代码,这样如果用户更改页面并且有任何未保存的更改,则用户应该获得警报.我从这里得到了一个答案:链接
但是在大多数解决方案中,我将不得不在所有页面上编写代码.我希望它只在一个地方写,这样每个人都不必担心在模块中写它.我的代码是这样的:
<script type="text/javascript">
var isChange;
$(document).ready(function () {
$("input[type='text']").change(function () {
isChange = true;
})
});
$(window).unload(function () {
if (isChange) {
alert('Handler for .unload() called.');
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
但每次我在文本框中进行更改.change()事件都没有触发.
代码中有什么问题?
编辑:我将.change()更改为.click并将其触发.我正在使用jquery 1.4.1 ..是因为jquery版本,change()不起作用?
如果您更改页面上的数据然后离开页面,以下代码将执行警告.我想要 - 除非用户按下保存按钮.
这是jquery代码:
$(document).ready(function() {
formmodified=0;
$('form *').change(function(){
formmodified=1;
});
window.onbeforeunload = confirmExit;
function confirmExit() {
if (formmodified == 1) {
return "New information not saved. Do you wish to leave the page?";
}
}
});
Run Code Online (Sandbox Code Playgroud)
这是保存数据的按钮:
<input class="btn-primary" name="commit" type="submit" value="Save Material">
Run Code Online (Sandbox Code Playgroud)
更新谢谢tymeJV !!!!!!!
如果其他人需要它,这有效:
$(document).ready(function() {
formmodified=0;
$('form *').change(function(){
formmodified=1;
});
window.onbeforeunload = confirmExit;
function confirmExit() {
if (formmodified == 1) {
return "New information not saved. Do you wish to leave the page?";
}
}
$("input[name='commit']").click(function() …Run Code Online (Sandbox Code Playgroud) 如何检测隐藏输入值的变化?我已经尝试过这些方法但没有成功:
$('#id_inpout').live('change',function () {
var id_el = $(this).attr('id');
alert(id_el);
});
Run Code Online (Sandbox Code Playgroud)
和
$('#id_inpout').change(function () {
var id_el = $(this).attr('id');
alert(id_el);
});
Run Code Online (Sandbox Code Playgroud)
和
$('#id_inpout').bind('change',function () {
var id_el = $(this).attr('id');
alert(id_el);
});
Run Code Online (Sandbox Code Playgroud) 我们有一个典型的Web应用程序,它本质上是一个具有大量屏幕的数据输入应用程序,其中一些具有一定程度的复杂性.我们需要提供标准功能,以确保用户忘记在导航或关闭浏览器之前单击"保存"按钮,他们会收到警告并可以取消(但仅当存在未保存或脏数据时).
我知道我必须做的事情的基础 - 实际上我确信在这些年之前我已经完成了所有工作(与onbeforeunload相关,跟踪页面的"脏"状态等等... )但是在我再次开始编码之前,是否有人对已经存在的图书馆(免费或其他)有一些建议会有所帮助?
我正在编写一个表单,我需要像stackoverflow这样的函数:"你已经开始编写或编辑帖子了."
我已经查看了stackoverflow的代码,看看他们是如何做到这一点的,但我根本没有把它应用到我的简单表单中.这就是他们对question.js的看法:
function initNavPrevention(b) {
if (b.which == "undefined") {
return
}
var a = $("#wmd-input");
a.unbind("keypress", initNavPrevention);
setConfirmUnload("You have started writing or editing a post.", a)
}
Run Code Online (Sandbox Code Playgroud)
其中一个函数触发了这个(我不知道c是什么):
if (c) {
e.keypress(initNavPrevention)
}
Run Code Online (Sandbox Code Playgroud)
最后他们必须setConfirmUnload(null);禁用它我想.
我的情况很简单.我有一个页面,我加载了一个<form />通过AJAX,我想阻止加载此表单离开页面而不点击SUBMIT按钮或如果用户单击取消,表单被禁用,预防将不会弹出.
拥有此代码,有人可以告诉我如何将其包含在我的网站上吗?
这是我加载表单的AJAX函数:
$("#projects_historics_edit_part_1").click(function(){
$("#ajax-loader").fadeIn('normal');
$.ajax({
url: BASE_URL + 'projects/ajax/get_historics_edit_part_1/' + PROJECT_ID,
type: "POST",
success: function(data) {
$("div#projects_historics_part_1").html(data);
$("#client").autocomplete(client_autcomplete_options);
var inicofin = $("#initdate, #findate").datepicker(initdate_datepicker_options);
}
});
$("#ajax-loader").fadeOut("normal");
return false;
});
Run Code Online (Sandbox Code Playgroud)
先感谢您!