gpt4 book ai didi

javascript - 在表上保存隐藏数据的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-02 20:33:09 25 4
gpt4 key购买 nike

我使用jTemplates用于在我的表上加载数据的插件。因为有一些属性我还没有显示,但我希望可供以后使用,所以我将它们保存在隐藏字段中,然后通过它们的 CSS 类名和 jQuery 的 siblings 方法获取它们。

这是执行此类操作的正确方法吗?或者这会被视为糟糕代码吗?

<script type="text/javascript">
$(function() {
$("#edit").click(function(e) {
e.preventDefault();
var $this = $(this);

var date = {
Id: $this.siblings(".tid").val(),
StartDate: $this.siblings(".tdate1").val(),
EndDate: $this.siblings(".tdate2").val(),
ClientId: $this.siblings(".tclient").val(),
UserId: $this.siblings(".tuser").val()
};

processDate(date);
});
});
</script>

<textarea id="template" class="ui-helper-hidden">
<table id="dates">
<thead>
<tr>
<th>Id</th>
<th>Start Date</th>
<th>End Date</th>
<th>Client</th>
<th></th>
</tr>
</thead>
<tbody>
{#foreach $T as record}
<tr>
<td>{ $T.record.Id }</td>
<td>{ formatDate($T.record.StartDate) }</td>
<td>{ formatDate($T.record.EndDate) }</td>
<td>{ $T.record.Client.Name }</td>
<td>
<button id="edit">Edit</button>
<input type="hidden" class="tid" value='{ $T.record.Id }' />
<input type="hidden" class="tdate1" value='{ $T.record.StartDate }' />
<input type="hidden" class="tdate2" value='{ $T.record.EndDate }' />
<input type="hidden" class="tclient" value='{ $T.record.Client.Id }' />
<input type="hidden" class="tuser" value='{ $T.record.User.Id }' />
</td>
</tr>
{#/for}
</tbody>
</table>
</textarea>

我们很乐意接受建议。 :)

最佳答案

你所拥有的有效,尽管你也可以使用 data attributes像这样:

    {#foreach $T as record}
<tr data-tid="{ $T.record.Id }" data-tdate1="{ $T.record.StartDate }" data-tdate2="{ $T.record.EndDate }" data-tclient="{ $T.record.Client.Id }" data-tuser="{ $T.record.User.Id }">
<td>{ $T.record.Id }</td>
<td>{ formatDate($T.record.StartDate) }</td>
<td>{ formatDate($T.record.EndDate) }</td>
<td>{ $T.record.Client.Name }</td>
<td>
<button class="edit">Edit</button>
</td>
</tr>
{#/for}

然后获取属性,例如单击编辑按钮时:

$(".edit").click(function() {
var user = $(this).closest("tr").attr("data-tuser");
//do something...
});

请注意编辑按钮的更改...您应该在此处使用类而不是 ID,因为它是重复的。

作为旁注,由于 recent change在主分支中,在 jQuery 1.5 中,您将能够执行 .data("tuser") 而不是 .attr("data-tuser") .

关于javascript - 在表上保存隐藏数据的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760624/

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