gpt4 book ai didi

javascript - 当表单包含未保存的数据时警告用户,忽略数据表过滤字段

转载 作者:行者123 更新时间:2023-11-28 15:00:52 25 4
gpt4 key购买 nike

我正在寻找一种方法来警告用户表单内有未保存的数据。如果用户导航到另一个站点或关闭浏览器,则应该出现警告。我发现this solution哪种作品。有时,如果浏览器关闭,它不会使用react。

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
// Set the unload message whenever any input element get changed.
$(':input').change(function() {
setConfirmUnload(true);
});

// Turn off the unload message whenever a form get submitted properly.
$('form').submit(function() {
setConfirmUnload(false);
});
});

function setConfirmUnload(on) {
var message = "You have unsaved data. Are you sure to leave the page?";
window.onbeforeunload = (on) ? function() { return message; } : null;
}
</script>

现在我有一个问题。我有一个<p:datatable>在我的页面上。每列都有一个过滤字段。由于该字段也是输入字段,因此如果过滤器字段中有某些内容,选择器也会匹配。是否可以避免选择器检查过滤器字段。

最佳答案

您要查找的选择器是 :input:not(.ui-column-filter) (数据表过滤器输入具有 ui-column-filter 类) 。您可以简单地在浏览器中检查这些字段并查看设置了哪些类。在 Chrome 中,右键单击字段并选择“检查”。

所以改变这一行:

$(':input').change(function() {

至:

$(':input:not(.ui-column-filter)').change(function() {

您可以在 JavaScript 控制台中测试这两个选择器并查看差异。

另请参阅:

此外,您应该消除加载 jQuery 的脚本。 jQuery 与 PrimeFaces 捆绑在一起,并在您在页面上使用 PrimeFaces 组件时加载。 Multiple instances of jQuery will cause uncaught type errors .

关于javascript - 当表单包含未保存的数据时警告用户,忽略数据表过滤字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40999072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com