【问题标题】:Create an HTML input id dynamically动态创建 HTML 输入 id
【发布时间】:2014-08-31 21:41:09
【问题描述】:

我想为输入动态创建一个id,

我试过了

for (int i = 0; i < Model[3].Count; i++)
      {
      @Model[3][i]
    terminal = "terminal" + i;

                        <input type="text" name="@terminal" id="@terminal"  onblur="return call()" />


      }

但没有成功。

编辑:

当我尝试时:

function call() { alert(document.getElementById("terminal").value); } 

我得到空值。 但是对于另一个元素,例如 那不是在循环中并且id被分配了静态的就可以了。

有什么想法吗?谢谢!!

编辑

我的模特是

 List<List<string>>

终端值将被分配为: 终端0 1号航站楼 . . 终端(n) 在控制器上的 FormCollection 中没关系,我得到正确的值问题是当我在 JavaScript 中尝试使用 DOM 时,我得到 NULLs

【问题讨论】:

  • 为什么这不起作用?您遇到的具体问题是什么。
  • 当我尝试时:function call() { alert(document.getElementById("terminal").value);我得到空值。但是对于像 这样不在循环中并且 id 是静态的元素,它是可以的。
  • 考虑到没有 ID 为 terminal 的元素可以按预期工作。 id 是terminal0terminal1 等。

标签: c# html asp.net-mvc-4


【解决方案1】:

问题在于您的 javascript。应该是:

function call() { alert(document.getElementById("terminal0").value); } 

您正在将 id 值创建为:terminal = "terminal" + i;,这将产生 terminal0terminal1 等。所有这些都可以通过查看页面生成的 html 上的源代码来轻松验证。

【讨论】:

  • 这是正确的,这是我的错,我把所有的测试都弄混了。现在完美地工作。非常感谢您的帮助!!!!
【解决方案2】:

你遇到了什么错误?

您是否在计算 [3](第 3 个数组)模型中的数据?还是您要实例化它?

如果您要实例化模型并设置 3 个空格,那么我认为最好在使用标识符执行 for 循环之前执行此操作,并使用 identifier.count 以便它变得更清晰。 例如。

Model[3] model;

for (int i = 0; I < model.count; i++)

这样设置为 3,我将数到 3。

如果您计算第三个数组中的模型 (Model[3].count) 我不确定这是否可能。如果是,请确保它是一个整数。

希望这会有所帮助。

【讨论】:

  • 我的模型没有问题,它是 List> 的终端值将被分配为: terminal0 terminal1 。 .控制器上 FormCollection 中的终端(n)没问题,我得到正确的值问题是当我在 JavaScript 中尝试使用 DOM 时,我得到 NULLs
  • hmm..也许只有我一个人,但我之前也遇到了 javascript 从动态元素获取更新值的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 2021-04-07
  • 2018-03-27
相关资源
最近更新 更多