Если вы используете ключевое слово AS SQL, вы можете переименовать столбец только для результата этого запроса.
SELECT
`member.uid`,
`member.column` AS `oldvalue`,
`edit.column` AS `newvalue`
FROM member, edit
WHERE
`member.uid` = $userId AND
`edit.uid` = $userId;
Что-то вдоль этих строк должно работать на вас. Хотя SQL не является моей сильной стороной, поэтому я уверен, что этот запрос не будет работать так, как есть, даже в таблице с правильными полями и значениями.
Как насчет передачи объекта event
в вашу функцию и вызова e.preventDefault()
при достижении максимального значения?
var content_id = 'editable_div';
max = 10;
//binding keyup/down events on the contenteditable div
$('#'+content_id).keyup(function(e){ check_charcount(content_id, max, e); });
$('#'+content_id).keydown(function(e){ check_charcount(content_id, max, e); });
function check_charcount(content_id, max, e)
{
if(e.which != 8 && $('#'+content_id).text().length > max)
{
// $('#'+content_id).text($('#'+content_id).text().substring(0, max));
e.preventDefault();
}
}
Хотя, возможно, вам придется сделать немного больше, чтобы позволить пользователю делать такие вещи, как "delete".
EDIT:
Добавлена поддержка клавиши 'delete'.
EDIT 2:
Также, возможно, вы могли бы избавиться от обработчика keyup
. keydown
должно быть достаточно.
Во-первых, такого рода вещи раздражают пользователя: я бы предложил вместо этого сделать что-то похожее на поле комментариев StackOverflow, которое позволяет вам вводить столько или меньше, сколько вам нравится, показывает вам сообщение, сообщающее вам, сколько символов вы набрали, и неважно, слишком много или слишком мало, и отказывается предоставить вам комментарий, длина которого недействительна.
Во-вторых, если вам действительно нужно ограничить длину текста, замена всего содержимого
keypress
и просто предотвратить вставку символа с помощью preventDefault ()
в событии (или в IE, установив для события returnValue
значение ] true
, если вы используете attachEvent
). Это не помешает пользователю вставить текст, поэтому вам нужно будет обработать событие paste
(которого нет в Opera или Firefox <3, поэтому вам понадобится какой-то опрос -основное решение для тех). Поскольку вы не сможете получить доступ к вставляемому содержимому заранее, у вас не будет возможности узнать, превысит ли вставка лимит символов, поэтому вам нужно будет установить таймер, чтобы снова проверить длину в ближайшее время. после пасты. В таком случае мне кажется, что первый вариант предпочтительнее.
var onKeyPress = function () {
var keyCode = window.event.keyCode,
isNumeric = (keyCode > 47 && keyCode < 58),
isNotEnterKey = !!(window.event.keyCode !== 13);
(isNotEnterKey) || (this.blur());
return (isNumeric && this.innerText.length < 3);
};