У меня также была проблема с попыткой получить что-то подобное для FireFox и IE.Для меня сработало использование ключевого слова event
в качестве входного параметра для вызова функции некоторой функции javascript.
Я хотел запустить новый файл .js
, который будет содержать весь мой javascriptтак что все мои формы могут вызывать функции там.Моя реализация просто позволяет использовать цифры, буквы и клавиши тире, CR и BS из поля ввода текста.Вот код JavaScript, который я использовал, который работает для меня:
//This function filters out character inputs from client-side
//that do not include a-z, A-Z, 0-9 and '-' (dash) and backspace
function charFilter(event) {
event = event || window.event || event.which || event;
//alert(event);
var unicode;
if (event.charCode) unicode = event.charCode;
else if (event.which) unicode = event.which;
else if (event.keyCode) unicode = event.keyCode;
else if (event) unicode = event;
// unicode must be: 0-9 OR A-Z
OR a-z OR - OR BS OR CR
if ((unicode > 47 && unicode < 58) || (unicode > 64 && unicode < 91) || (unicode > 96 && unicode < 123) || unicode == 45 || unicode == 8 || unicode == 13) {
return true;
}
else return false;
}
Код, работающий в форме Default.aspx
(Default.aspx.vb
), теперь содержит следующую подпрограмму:
Protected Sub Page_load(ByvVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'some code
'Filter characters in text search field (client side)
Dim t As Type = Me.GetType()
Me.Page.ClientScript.RegisterClientScriptInclude("t", ResolveUrl("~/JScript.js"))
txtSearch.Attributes.Add("OnKeyPress", "return charFilter(event)")
'rest of code
End Sub
Iя думаю, что другая отправка - намного более чистый код, но это показывает пример, чтобы получить функцию javascript по отдельному пути для работы.Обратите внимание, что путь к файлу .js
для вас будет другим, я просто выбрал для этого местоположение по умолчанию.