我刚开始第一次使用jquery,所以我不确定我所做的是否正确。我正在尝试做的是非常基本的,我有一个脚本,它在MVC视图中加载时向文本框添加css水印。
要选择元素,请执行以下操作:
jQuery(document).ready(function(){$('#Department.DeptName').addWatermark('input-watermarked', 'test');});
然后在我的脚本中添加css水印类,它在“this.val()。length”语句中失败。
jQuery.fn.toggleWatermark = function(watermarkedClass, watermarkText) {
if (this.hasClass(watermarkedClass)) {
this.removeWatermark(watermarkedClass);
}
else if (this.val().length == 0) {
this.addClass(watermarkedClass);
this.val(watermarkText);
}
}
脚本在元素id为“DepartmentDeptName”的情况下工作正常,就好像当元素id在其中包含一个点时,选择器不起作用。有谁知道为什么或如何解决这个问题?
答案 0 :(得分:65)
我认为你应该用双反斜杠来逃避点:$("#Department\\.DeptName")
见here。
答案 1 :(得分:1)
您正在尝试使用课程#Department
访问DeptName
。你应该用两个反斜杠逃脱(正如Joril所说)。
有关详细信息,请参阅JQuery Selectors。
答案 2 :(得分:0)
如果您可以控制编写jQuery,那么像$("input[name='department.deptname']")
这样的替代语法将会起作用。我使用Spring MVC和Kendo,因此我无法访问jQuery代码。 Spring MVC <form>
标记会在适用的情况下自动放置.
。例如。如果用户具有地址..因此,字段城市将变为user.address.city
(或address.city
)。如果我将Spring MVC分解为多种形式,那么它会混淆我的后端逻辑。它还散布了应该是单一形式的内容。另一个选择是在后端压扁User
对象......再次,不是很干净。我不确定,但Dojo是在这种情况下工作的。