【发布时间】:2011-02-23 22:55:02
【问题描述】:
我渲染了一个带有表格的视图。表格的每一行都是一个可以编辑的对象。因此,该表的最后一列有一堆“编辑”按钮。单击这些 EDIT 按钮之一时,JavaScript 函数必须获取当前行表示的对象的 Id。最终,我希望得到一个干净的 HTML:没有“onclick”、“onmouseover”属性,也没有自定义属性。下面我有 2 个我不喜欢的例子。有什么好主意吗?
示例 1:
View.aspx
<td>
<input type="button" value="EDIT" onclick="JSFunction(<%: ObjectId %>)" />
</td>
JavaScript
function JSFunction(id)
{
//some code that does whatever with id
}
示例 2:
View.aspx
<td>
<input type="button" value="EDIT" customAttribute="<%: ObjectId %>" />
</td>
JavaScript
$('input[type=button]').click(function() {
var id = this.attr('customAttribute');
//some code that does whatever with id
});
附:如果你能想出一个更好的问题标题,也请分享:)
【问题讨论】:
-
您希望将 customAttribute 数据存储在哪里?一旦我们知道它在哪里,我们就可以弄清楚如何使用 jQuery 访问它。还是您希望将数据存储在服务器端并通过 AJAX 获取?
-
自定义属性可以认为是干净的html。它们甚至在 HTML5 规范中 dev.w3.org/html5/spec/…
-
@mrtsherman - 我希望将它呈现到 HTML 服务器端,以便在客户端,JavaScript 可以获取该值。
-
@Yads - 非常有趣!我不知道这个。谢谢!
标签: javascript jquery html asp.net-mvc-2 unobtrusive-javascript