【问题标题】:How to add onmouseleave property on the textbox in RazorViewEngine如何在 RazorViewEngine 的文本框上添加 onmouseleave 属性
【发布时间】:2020-04-07 14:26:12
【问题描述】:

我在 ASP.Net MVC5 中工作,我想使用 Javascript 将密码字段与 确认密码 匹配,但由于它使用 Razor View Engine,我无法添加 onmouseleave 我的textbox 上的财产。 请帮忙提前谢谢。

 @Html.EditorFor(model => model.ConfirmedPassword, new { htmlAttributes = new { @class = "form-control", @id = " CPswd", @onmouseleave = "Show();" } })

它给了我这个错误-

CreateUser:122 未捕获的类型错误: 无法在 Show (CreateUser:122) 处读取 null 的属性“值” HTMLInputElement.onmouseleave (CreateUser:105)Show @ CreateUser:122 onmouseleave@CreateUser:105

在 Createuser122 是这段代码 -

var pswd = document.getElementById('Pswd').value;

在 CreateUser105 是这段代码 -

【问题讨论】:

  • 由于它使用 Razor View Engine,我无法在我的文本框上添加 onmouseleave 属性.....为什么?有什么问题?
  • @Mamun 对半知半解的问题感到抱歉,我已对其进行了编辑,请再看一遍
  • 不确定,但您可以尝试使用DOMContentLoaded 中描述的developer.mozilla.org/en-US/docs/Web/API/Document/… 包装您的JS
  • @Mamun 我对 Javascript 还很陌生,所以这个链接和它的内容让我难以理解,还有更简单的解决方案吗??
  • 没有注意到您在代码和元素中使用的ID不匹配,请查看Derrick的答案......

标签: javascript asp.net-mvc asp.net-mvc-5 razorengine


【解决方案1】:

当您尝试getElementById() 的 Pswd 时,您的 ID 似乎定义为“CPswd”。您在调用 getElementById() 时得到空值,因为它不存在(因为文本不匹配)。我也会删除空格。

【讨论】:

  • no "Cpswd" 和 "Pswd" 是两个不同的文本框的 id,我刚刚重新检查了它。
  • 你能添加更多相关代码吗?您提供了来自两个不直接相关的不同部分的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-21
  • 2012-07-13
  • 1970-01-01
  • 2011-04-29
  • 2023-03-10
  • 2019-05-21
  • 1970-01-01
相关资源
最近更新 更多