Нашол полезный скрипт. проверил, работает, но содержит серьёзный баг. Смылс скрипта заключается в том, чтобы не разрешить писать в коментариях запрещённые слова, типа антимата или антиспама. Скрипт срабатывает сразу, если пользовательвводит слова из базы, сразу вылазит предупреждение, типа запрещенное слово, и деактивирует кнопку "отправить".
А баг скрипта в том, что он в любом случае, почемуто, блокирует кнопку "отправить", как только начинаешь вводить коментарий, независимо от наличия запрещённых слов.
вот код скипта стянутого с js
Code
$(document).ready(function() { $("textarea[id='message']").keyup(function() { error = "В тексте используется ненормативная Лексика / Ссылки"; words = ["бл%ть","су%а","у%бок"]; for (i = 0; i <= words.length; i++){ if($("#message").val().toLowerCase().indexOf(words[i]) != -1) {$("#addcBut").attr("disabled", "disabled");$("#er").fadeIn("slow").text(error);setTimeout('$("#er").fadeOut("slow")', 7500);break;} else{$("#addcBut").attr("disabled", 0);setTimeout('$("#er").fadeOut("slow")', 7500);} } }); });
А баг скрипта в том, что он в любом случае, почемуто, блокирует кнопку "отправить", как только начинаешь вводить коментарий, независимо от наличия запрещённых слов.
А почему затея не очень? Я его хочу использовать не как антимат, а чтобы блокировать добавление некоторых сайтов, типа летитбита и т.п. И мне он показался очень даже приемлемым в моем случае.
кстати, вроде заработало нормально, спасибо.
Добавлено (23.06.2012, 10:57) --------------------------------------------- да, всётаки туповатый скрипт походу... Так срабатывает вроде нормально, однако если забиваешь сайт через bb код, он увы, не срабатывает и благополучно пропускает комент, даже с запрещённым сайтом а если дальше продолжаешь вводить текст, тогда он срабатывает... а самой проверки при отправлении нету.
Сообщение отредактировал Shaman - Суббота, 23.06.2012, 11:01
Про проверку при отправлении, по ссылке выше, через функцию.
Вобще не очень хороший вариант вешать событие на каждое нажатие клавиши, вы представляете как нагрузка если сообщение большое и человек печатает руками? это при каждом нажатии запускается цикл перебирающий весь словарь и ищущий вхождение в текст сообщение, количество инъекций возрастает в геометрической прогрессии в зависимости от объема словаря.
Не говоря уже о том, что поиск очень посредственный.