Это потому, что вы изменяете html внутри текстовой области, которая является значением по умолчанию.Кажется, что как только вы установили новое значение (набрав или удалив что-то из текстового поля), это значение по умолчанию игнорируется.
Чтобы обойти это, вам нужно установить значение текстовой области, а не добавлятьк содержанию:
function addUrl(e)
{
patt="http[s]*:\/\/";
if(e.match(patt))
u=e;
else
u="http://"+e;
var newVal = $("textarea[name=\"content\"]").val() + "\n\r[url]"+u+"[/url]\n\r"
$("textarea[name=\"content\"]").val(newVal);
}
http://jsfiddle.net/infernalbadger/FpSsc/1/
Или как рекомендовал Феликс:
function addUrl(e)
{
patt="http[s]*:\/\/";
if(e.match(patt))
u=e;
else
u="http://"+e;
$("textarea[name=\"content\"]").val(function(i, v) { return v + "\n\r[url]"+u+"[/url]\n\r"; });
}