Подаване на стойност от текстареа към Js функция при Enter?

sizif

Registered
Здравейте!

Имам текстареа, чиято стойност трябва да предам на Js-функция - showHint(z);

Искам това да става при натискане на нарочен бутон за изпращане или "Ентър" от клавиатурата - да са достъпни и двете опции.

След изпращането на стойността, въведеното в текстареата трябва да се изчиства автоматично, т.е. да остава празна.

Благодаря предварително!

ПП: ако може при празна текстареа (не е въведено нищо, въведени са само интервали) стойността да не може да се подаде към Js функцията.
 
Формуляра не се субмитва. Няма рефреш. Трябва ми при ентър или натискане на бутон (да е възможно и двете), въведеното в текстареата да се подаде към Js-функцията.
 
Ето какво спретнах набързо:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title></title>
<script type="text/javascript">
function initPage()
{
window.document.onkeydown=findKey;
}
function show_textarea()
{
var pole = document.getElementById('text');
pole.value = "";
}
function findKey(evt)
{
var evt = (evt) ? evt : ((window.event) ? event : null);
if(evt.type == 'keydown')
{
var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
if(charCode == 13)
{
show_textarea();
}
}
}
</script>
</head>
<body onload="initPage();">
<textarea id="text">rdfyhjertyjrtyjrntyhnr</textarea><br />
<input type="button" name="button" onclick="show_textarea()" value="Clear" />
</body>
</html>
Като се натисне ENTER се изчиства textarea-та,или като се натисне бутона.Стойността на textarea може да се я вземеш от тук :

function show_textarea()
{
var pole = document.getElementById('text');
pole.value = "";
}
Не знам дали съм те разбрал правилно,но мисля че това ще ти свърши работа поне донякъде
 
emagi,
пробвах го и работи с малки забележки (при натискане на ентър, новия ред остава в текстареата), но получавам проблем с типовете:

Ето кода:

<script type="text/javascript">

function initPage()
{
window.document.onkeydown=findKey;
}

function show_textarea()
{
var pole = document.getElementById('text');

showHint(pole);

pole.value = "";
}


function findKey(evt)
{
var evt = (evt) ? evt : ((window.event) ? event : null);
if(evt.type == 'keydown')
{
var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
if(charCode == 13)
{
show_textarea();
}
}
}

</script>


функцията showHint() очаква низова променлива, а по този начин получава за стойност обект :(

тествах с showHint('аз съм сънчо');
и се отпечата нормално като текст.

Някаква идея как може да се промени типа, който подава функцията show_textarea(); ?
 
emagi, получи се!

Благодаря много + 1т. :?:

А имаш ли идея, как могат да се премахнат новите редове в текстареата, които оставя ентъра при изпращането?

В краен случай ще сменя текстареата с текстово поле, но няма да е толкова удобно за въвеждане на текст :(
 
хм.........
Сега нямам време да пробвам, но доколкото си спомням беше нещо от рода на:
да кажем ,че си присвоил стойността на textarea-та на променливата a:
var a = document.getElementById('тука id-то на textarea').value;
a=a.split("\\n").join("тука заменяш с каквото искаш");
Пробвай, и кажи.Като ми остане малко повече време ще пробвам и аз :)
 
emagi, проблемът е че слага новия ред след като се завъртят функциите, т.е. и да го чистя, пак остава. Това е новия ред от натискането на ентъра, с който се изпраща стойността.
 
Код:
$str =  str_replace ("\n", $str);
$str =  str_replace ("\r", $str);
:wink:

аз имах подобен проблем с оverlib и се грешах, че не премахвам \r което само уиндоус го добавя - като значение е Carriage return и пак правеше нов ред и съсипваше всичко
 
Здравей!

Няма как да го пратя до сървъра - проблемът касае браузъра :)

ПП: Вместо това:

Код:
$str = str_replace ("\n", $str);
$str = str_replace ("\r", $str);

Ползвай trim();

$str=trim($str); :?:
 

Back
Горе