#javascript #asp.net
#javascript #asp.net
Вопрос:
У меня есть текстовое поле веб-формы с текстовым режимом, установленным на несколько. Недавно функция перестала работать, и я не могу понять, что произошло. Когда пользователь нажимает клавишу [Return] два раза подряд, веб-форма запускает событие кнопки отправки через javascript на стороне клиента. Вот так:
function postPage() {
var inputString = document.getElementById("Search1_AccordionPane2_content_txtSearchText").value;
if (inputString.match(/(rn){2,}/)) {
document.getElementById("Search1_AccordionPane2_content_txtSearchText").click();
}
}
Код не изменился, наши пользователи используют IE8 на W7, и я подозреваю, что это перестало работать с момента перехода на W7 или IE8. Кроме того, настройки браузера ограничены групповой политикой, которую я не контролирую. Есть идеи, с чего начать отладку этого?
Спасибо,
Risho
Комментарии:
1. и что такое прослушиватель событий?
Ответ №1:
попробуйте сделать r
необязательным следующее ?
so: /(r?n){2,}/
, На всякий случай, если IE8 использует single n
вместо rn
в качестве ограничителя строки
Комментарии:
1. К сожалению, у меня нет доступа ни к IE8, ни к W7, чтобы попробовать другие предложения. может быть, попробуйте что-то вроде
alert(inputString.replace('n', '[n]').replace('r','[r]'));
, чтобы узнать, что вам следует искать в строке (при условии, что совпадение — это та часть, которая завершается неудачей)2. Я только что протестировал его в IE8 на WinXP (извините, наверное, я солгал), и совпадение сработало, можете ли вы опубликовать свой код обработчика событий?
3. Элемент управления находится в файле .ascx и выглядит следующим образом: <asp:идентификатор текстового поля =»txtSearchText» onKeyUp=»postPage();» runat=»server» Height=»80px» TextMode=»Многострочный» Width=»240px» />. Функция javascript: функция postPage() { var inputString = document.getElementById(«Search1_AccordionPane2_content_txtSearchText»).значение; if (inputString.match(/(rn){2,}/)) { document.getElementById(«Search1_AccordionPane2_content_txtSearchText»).click(); } }
4. глупый вопрос: asp автоматически обновляет идентификатор текстового поля с
txtSearchText
доSearch1_AccordionPane2_content_txtSearchText
? потому что в противном случае ваш getElementById не будет совпадать5. Search1_AccordionPane2_content_txtSearchText изначально был получен из отображаемой страницы «просмотр источника».