我有一个 ASP 应用程序,我必须在其中使用 javascript 来获取元素的值
@for(int i=0; i< Model.Count; i++) {
<input type="text" value="@Model[i].age" name="age@(i)" />
HtmlActionLink("new age","Change", new { age = "age" + i.ToString()
});
}
我需要获取每个标签的值age
:new {age = "age"+ i.ToString()
不起作用,我必须替换它通过使用 document.getElementsByName
方法的 javascript 脚本
如何修改代码来完成此任务?
最佳答案
我只需向每个输入元素添加一个类,赋予它一些含义(例如“input-age”):
<input class="input-age" type="text" value="@Model[i].age" name="age@(i)" />
然后您可以按类名称选择所有输入,而无需依赖 View 引擎动态分配的名称:
var ages = document.querySelectorAll('input.input-age');
或者,如果您需要查找特定年龄指数的值,而不添加类名称:
var ageIndex = 4;
var age = document.querySelector('input[name="age' + ageIndex + '"]').value;
仅供引用,对于 IE,它仅适用于版本 8 或更高版本,因为 querySelectorAll
函数,但您可以使用其他方法。
如果 jQuery 已在桌面上,您无法更改任何内容并使用“开头为”选择器来获取所有“年龄”元素:
var ages = $('input[name^="age"]');
或者,添加类名后:
var ages = $('.input-age');
或者,查找特定输入的值:
var ageIndex = 4;
var age = $('input[name="age' + ageIndex + '"]').val();
在最后一个示例中,您不需要添加类名;
关于c# - 在 javascript/razor 应用程序中按名称获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19233297/