От Google Groups :
Использование две обратных косых черты перед каждым специальным символом.
обратная косая черта А в селекторе jQuery выходит из следующего символа. Но Вам нужны два из них, потому что обратная косая черта является также символом ESC для строк JavaScript. Первая обратная косая черта выходит из второго, давая Вам одну фактическую обратную косую черту в Вашей строке - который тогда выходит из следующего символа для jQuery.
Так, я предполагаю, что Вы смотрите
$(function() {
$.getJSON("/Location/GetCountryList", null, function(data) {
$("#Address\\.Country").fillSelect(data);
});
$("#Address\\.Country").change(function() {
$.getJSON("/Location/GetRegionsForCountry", { country: $(this).val() }, function(data) {
$("#Address\\.State").fillSelect(data);
});
});
});
Также выезд , Как я выбираю элемент идентификатором, который символы использовал в нотации CSS? на FAQ jQuery.
Вы не можете использовать идентификационный селектор jQuery, если идентификатор содержит пробелы. Используйте селектор атрибута:
$('[id=foo bar]').show();
, Если возможно, определите тип элемента также:
$('div[id=foo bar]').show();
Предвыпускная версия ASP.NET, MVC, который был просто выпущен, устранил эту проблему, она теперь, заменяет точки символами нижнего подчеркивания для идентификационного атрибута.
<%= Html.TextBox("Person.FirstName") %>
Рендеринг к
<input type="text" name="Person.FirstName" id="Person_FirstName" />
Для получения дополнительной информации просматривает информацию о версии, запускающуюся на странице 14.
Просто дополнительная информация: Проверьте этот ASP.NET выпуск № 2403 .
MVC, Пока проблема не устраняется, я использую свои собственные дополнительные методы как HTML. TextBoxFixed, и т.д. который просто заменяет точки подчеркиваниями в идентификационном атрибуте (не в атрибуте имени), так, чтобы Вы использовали jQuery как $ (" #Address_Street"), но на сервере, это похоже на Адрес. Улица.
Пример кода следует:
public static string TextBoxFixed(this HtmlHelper html, string name, string value)
{
return html.TextBox(name, value, GetIdAttributeObject(name));
}
public static string TextBoxFixed(this HtmlHelper html, string name, string value, object htmlAttributes)
{
return html.TextBox(name, value, GetIdAttributeObject(name, htmlAttributes));
}
private static IDictionary<string, object> GetIdAttributeObject(string name)
{
Dictionary<string, object> list = new Dictionary<string, object>(1);
list["id"] = name.Replace('.', '_');
return list;
}
private static IDictionary<string, object> GetIdAttributeObject(string name, object baseObject)
{
Dictionary<string, object> list = new Dictionary<string, object>();
list.LoadFrom(baseObject);
list["id"] = name.Replace('.', '_');
return list;
}