Ответ 1
Я думаю, вам следует избегать точки с двойным обратным слэшем: $("#Department\\.DeptName")
Смотрите здесь.
Я только что начал использовать jquery в первый раз, поэтому я не уверен, что то, что я делаю, является правильным. То, что я пытаюсь сделать, очень просто, у меня есть script, который добавляет водяной знак css в текстовые поля при загрузке в представлении MVC.
Чтобы выбрать элемент, выполните следующие действия:
jQuery(document).ready(function(){$('#Department.DeptName').addWatermark('input-watermarked', 'test');});
Затем в моем script для добавления водяного знака 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);
}
}
script отлично работает там, где идентификатор элемента - "DepartmentDeptName", он, как если бы селектор не работал, когда идентификатор элемента содержит точку внутри него. Кто-нибудь знает, почему и как обойти эту проблему?
Я думаю, вам следует избегать точки с двойным обратным слэшем: $("#Department\\.DeptName")
Смотрите здесь.
Вы пытаетесь получить доступ к #Department
классу DeptName
. Вы должны бежать с двумя обратными косыми чертами (как сказал Джорил).
Подробнее см. JQuery Selectors.
Альтернативные синтаксисы типа $("input[name='department.deptname']")
будут работать, если у вас есть контроль над написанием jQuery. Я использую Spring MVC с Kendo, и поэтому у меня нет доступа к jQuery-коду. Spring тег MVC <form>
автоматически помещает .
в любое место. Например. если у пользователя есть адрес.. таким образом, город города станет user.address.city
(или address.city
). И если я разбиваю Spring MVC на несколько форм, то это испортит мою внутреннюю логику. Он также рассеивает то, что должно было быть одной формой. Другой альтернативой является сглаживание объекта User
на back-end... снова, не очень чистое. Я не уверен, но Dojo работал в таком сценарии.