c# - 在 javascript/razor 应用程序中按名称获取值

标签 c# javascript .net asp.net-mvc razor

我有一个 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/

相关文章:

C# SqlConnection 停止于方法 : Open()

.net - 有没有办法让应用程序从非托管访问冲突异常中恢复?

javascript - 将多维javascript数组绑定(bind)为c#中的方法参数

javascript - 在异步函数中调用同步函数

javascript - 为什么我不能访问 jquery 函数中的变量

Javascript 字符串拆分 - 在第二个逗号处拆分字符串

c# - DataGridView 自动排序在数据源绑定(bind)时不起作用

.net - 从 iPhone 上传图像/音频到服务器无法发送大图像

c# - 将用户输入的日期时间转换为 UTC

c# - 将 JSON 序列化为动态时属性名称中的非法字符