我在一个视图上有一些 javascript,可以对我的控制器进行 ajax 调用。我正在遍历数据并正在构建一个表格。我需要做的是为表中的每个项目,使其成为一个超链接,然后当用户单击任何链接时,我想用链接的值填充一个文本框。
到目前为止,我的代码循环遍历 json 数据并构建我的表工作。这是代码片段:
htmlstring = htmlstring + "<th>VlanId</th><th>Name</th>";
for(i = 0; i < returnDataFromController.length; i++) {
//alert(returnDataFromController[i].VlanId);
htmlstring = htmlstring + "<tr><td><a href=''>"+returnDataFromController[i].VlanId+"</a></td><td>"+ returnDataFromController[i].Name+"</td></tr>";
}
submitFormHTML = "<input type='text' id='newVlanID' style='width:5em;height:1.5em'/> <button class='btn' id='saveVlan' style='width:10em;height:2em'>Reassign Vlan</button>";
$('#clientajaxcontainer').html(htmlstring);
$('#newvlanform').html(submitFormHTML);
为了完成我想做的事情,我需要给每个标签一个唯一的名称还是我可以将它分配给一个类?如果我可以为每个标签分配一个特定的类,那就太好了 - 例如)classX ...然后为classX类型的标签的点击事件编写一个jquery处理程序。这可能吗?感谢您花时间阅读这篇文章。
编辑:
我正在使用 jquery 1.8 版。除了上面的代码之外,我还添加了一些 javascript 来尝试根据点击事件自动填充文本框:
$('clientajaxcontainer').on("click", "td:first-child a", function(ev) {
ev.preventDefault();
$('#newVlanID').val($(this).text());
});
如果我理解正确, ev.preventDefault() 应该会阻止浏览器将我重定向到另一个页面。但这似乎不起作用。当我单击任何超链接时,它会重新加载当前页面。