2010-08-20 5 views
1

Есть ли способ получить фиксированный текст по умолчанию в конце текста в текстовом поле? Зачем? У меня есть textarea, чтобы сделать twitter stsatuses, и в конце каждый пользователь должен иметь свою подпись. Поэтому я хочу иметь его в тексте, который они не могут удалить.Исправлен текст в конце textarea

Любой код или плагин для этого?

+1

Вы считали, что принимаете то, что вводите в текстовую область, и когда они нажимают кнопку submit (или твит или что вы, сумасшедшие дети, звоните в эти дни), запускаете ее через функцию, которая автоматически добавляет подпись пользователя? – rownage

+0

Да, есть. Но хотелось бы, чтобы этот пользовательский интерфейс позволял пользователю узнать, что он/она публикует. – ThoKra

+0

Немного общего вопроса здесь ... twitter позволяет только 140 символов, наличие «подписи» кажется очень вредным для фактического использования. –

ответ

3

Я думаю, что это уже слишком давно, и я думал, если у вас есть хорошее решение для вашего вопроса, потому что я почти хотел сделать то же самое здесь. Если нет, возможно, вы захотите проверить мой ответ здесь http://jsfiddle.net/index/tX44C/2/.

0

Мне пришлось решить подобную проблему не так давно. Вместо фиксированного текста я решил ограничить количество работ, которые они могли бы добавить в текстовую область twitter, так что вместо 140 символов разрешено разрешать только 110 символов. Я применял это, используя jquery, на стороне клиента, а также проверял его на стороне сервера.

В вашем случае использовать тот же код, как показано ниже, но заменить:

tweet = $('#edit-tweet').val(); 

с

tweet = $('#edit-tweet').val() + 'Your Signature'; 

Это код, который я использовал на стороне клиента:

$(document).ready(function() { 

    var tweet_area = $('#edit-tweet'); 

    tweet_area.keyup(count_down); 

    count_down(); 

    dim(); 

    tweet_area.hover(highlight, dim); 

    }); 


/** 
* Count down function 
*/ 
function count_down() { 
    var left = 110 - $('#edit-tweet').val().length; 

    if (left < 0) { 
    left = 0; 
    limit_text(tweet); 
    } else { 
    tweet = $('#edit-tweet').val(); 
    } 
    $('#counter').text(' - ' + left); 
} 

/** 
* Limits the tweet text value to static sized tweet. 
* 
* @param tweet 
*   the static sized tweet 
*/ 
function limit_text(tweet) { 
    $('#edit-tweet').val(tweet); 
} 

/** 
* Callback for hover in function 
*/ 
function highlight() { 

    var tweet_style_focusin = { 
    'width' : '600px', 
    'height' : '50px', 
    'border' : '3px solid #cccccc', 
    'padding' : '5px', 
    'font-family' : 'Tahoma, sans-serif', 
    'background-image' : 'url(bg.gif)', 
    'background-position' : 'bottom right', 
    'background-repeat' : 'no-repeat' 
    }; 

    $(this).css(tweet_style_focusin); 

    $(this).focus(); 

} 

/** 
* Callback for hover out function 
*/ 
function dim() { 
    var tweet_style_foucsout = { 
    'width' : '600px', 
    'height' : '50px', 
    'border' : '1px solid #cccccc', 
    'padding' : '5px', 
    'font-family' : 'Tahoma, sans-serif', 
    'background-image' : 'url(bg.gif)', 
    'background-position' : 'bottom right', 
    'background-repeat' : 'no-repeat' 

    }; 

    $('#edit-tweet').css(tweet_style_foucsout); 
} 
+0

Да, есть такой код allready. Я спрашиваю, как добавить псевдоним в конце текста, чтобы показать пользователю, как будет выглядеть сообщение. Не скрывайте псевдоним, а затем добавляйте его, когда они публикуют. – ThoKra

+0

Тогда вы должны использовать тот же код ... кроме замены твита твитом + константой ... 'tweet = $ ('# edit-tweet'). Val() + 'Ваша подпись';' – dkinzer

0

Я не думаю, что это возможно, но я бы использовал другой подход. Вы можете добавить отключенное текстовое поле или просто div под текстовым полем для основного текста.

<textarea name="blabla"><textarea> 
<div class="signature">signature</div> 

И чем делать работу в бэкэнде.

Я не знаю, что вы используете.

Так что для PHP что-то вроде этого:

<?php $_POST['blabla'] .= $signature ?> 

В рельсами что-то вроде этого:

def some_action 
    params[:blabla] << signature 
end 

Таким образом, пользователь не может изменить подпись ни в коей мере. Даже если вы найдете решение jQuery, которое работает, оно всегда небезопасно, потому что пользователь может изменить код javascript или полностью отключить его, чем пользователь может изменить свою подпись.

IMHO подход на стороне сервера - лучший способ сделать это.

+0

Будет, конечно, иметь проверку на стороне сервера до того, как будет сделано обновление;) – ThoKra

0

Я бы создал div точно такой же ширины под номером textarea. Я постараюсь сделать их похожими на одно сплошное textarea, убедившись, что границы и фон согласованы и устраняются нижняя граница textarea и верхняя граница div с использованием CSS.

+0

Мысль об этом, но у rater есть псевдоним в конце текста. 'Некоторое длинное сообщение здесь/псевдоним', но что/alias всегда в конце. – ThoKra

Смежные вопросы