在不使用经典 html 表单的情况下,在 Web 应用程序中存储隐藏值的最佳实践是什么?

发布于 2024-11-17 22:43:06 字数 1026 浏览 4 评论 0原文

我希望这个问题不是没有用!但说实话,这对我来说是个问题。

当我想在 Web 应用程序中构建用户界面来(添加、删除、编辑)某些内容时,我使用 HTML 表单 + 隐藏输入来存储一些值,例如“用户 ID” code> 要删除、编辑..

我想仅使用“anchors + span + div”而不是“隐藏输入”来构建相同的界面。当我编写处理“onAdd、onDelete 和 onEdit”事件的 javascript 代码时,我需要知道什么将被删除? 将从我的数据库中踢出的 ID 是什么

问题是,如何在不使用隐藏输入的情况下将此 ID 存储在我的 html 标签中?

我使用的是这样的:

<div id="userid_133421" >
    <span>Name</span>
    <a id="onDelete">Delete</a>
    <a id="onEdit">Edit</a>
</div>

$("#onDelete").click(function({

        user_id = $(this).parent().attr('id').substring($(this).attr('id').indexOf('_')+1);

        $.post('index.php?component=user&action=remove&user_id=' + user_id, function(data){

        });
    }));

我检查了一些网站,例如 Dropbox ,我发现他们不使用这种技术来存储值(例如文件id),更重要的是他们不使用经典的隐藏输入来做到这一点!

我只是想知道你如何管理你的代码以选择最好的方式? :(

I hope that this question is not useless ! but seriously , it is a problem for me .

when I want to build a user interface in a web application to (add, delete ,edit ) something I use HTML forms + hidden inputs to store some values such as "user id" to be deleted,edited ..

I want to build the same interface using just " anchors + span + div " insteand of "hidden inputs" . when I write the javascript code that handles "onAdd ,onDelete and onEdit" events I need to know what will be deleted ? what is the id that will be kicked out from my database ?

The question is , how to store this ID in my html tags without using hidden inputs ?

what I'm using is something like this :

<div id="userid_133421" >
    <span>Name</span>
    <a id="onDelete">Delete</a>
    <a id="onEdit">Edit</a>
</div>

$("#onDelete").click(function({

        user_id = $(this).parent().attr('id').substring($(this).attr('id').indexOf('_')+1);

        $.post('index.php?component=user&action=remove&user_id=' + user_id, function(data){

        });
    }));

I checked some websites such as Dropbox , and I found that they don't use this technique to store values (such as file id) , and even more they don't use classic hidden inputs to do that!

I just want to know how do you manage your code to choose the best way ? :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

佼人 2024-11-24 22:43:06

如果您使用 JQuery,为什么不使用 data()存储信息的功能?

If you are using JQuery, why not use the data() function to store information?

太阳哥哥 2024-11-24 22:43:06

我第二@nfecher!这就是我现在正在开发的应用程序中所做的事情!我们将 id 存储在 data-myAppName-itemTypeId 中。 myAppName 正在创建一个伪命名空间,以避免与可能使用相同 data-* 属性的其他插件发生冲突:例如 data-stackoverflow-commentId="4" 根本不需要隐藏输入!您可以对所有元素遵循相同的样式。如果它是通用删除功能,您可以查找父类名称并决定要获取哪个 data-* 属性!

I second @nfecher! That's how I am doing it right now in an application that I'm working on! We store the ids in the data-myAppName-itemTypeId. The myAppName is creating a pseudo namespace to avoid collisions with other plugins that may use the same data-* attributes: e.g. data-stackoverflow-commentId="4" No need for hidden inputs at all!! You can follow the same style for all elements. If it's a generic delete functionality, you could look up the parent class name and decided which data-* attribute you want to fetch!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文