Jump to content
  • 0

Получение текущего значения поля в форме


WiciN
 Share

Question

Привет всем, столкнулся с проблемой при получении значения формы.

На странице имеется 4 формы. (страница пополнения баланса)

Первая форма имеет 2 поля типа text выглядет так: [руб].[коп] конечно вместо руб. и коп. будут цифры.

И три формы отправки запроса на оплату в системы: WebMoney, LR, и LiqPay. В этих трёх формах все поля скрыты, кроме submit-ов.

Субмиты подсписаны так: Пополнить баланс на руб.коп USD через ….

Ещё сумма (руб.коп) добавляется в value полей ammount во всех трех формах.

Нужно, чтоб при вводе цифр в поля руб. или коп. сумма менялась сразу. Каким бы способом не вызывал функцию (onkeypress, onchange, onblur) нужного результата нет.

Вот вызываемая функция java script:

function print_summa()
{
var summa = document.getElementById(\'add_rub\').value + \'.\' + document.getElementById(\'add_kop\').value;
document.getElementById(\'ammount_wm\').value=summa;
// и так далее

Оно конечно все работает, только как бы на шаг позже. Например (по умолчанию руб=0) при обработчике onkeypress изменяешь сумму на 2, везде остается умолчание. Потом меняешь на 5, везде присваивается 2.

onchange, onblur - не предлагать, так как нужно менять текст на кнопках не теряя фокус полей руб. или коп.

Как сделать так, чтоб присваивалась текущее значение, а не предыдущее, подскажите…

Edited by WiciN
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
Два вопроса:

1. Почему кавычки экранированы?

2. А можно побольше кода? Если бы видеть всю функцию целиком и код формы стало бы намного понятней

ответ 1: Кавычки экранированы, потому, что форма находилась в echo ' … ';

ответ 2: Я не выдержал и снес нафиг весь тот код. Решил сделать совсем иначе.

Но вопрос остался. Вот набросал пример:

<html>
<head><title>Хреново работает</title></head>
<body>
<script type="text/javascript">
function print_summa()
{
var summa=document.getElementById('summa').value;

document.getElementById('text_summa').innerHTML='Сумма ' + summa + 'руб.';
}
</script>

<form action="page.php" method="POST">
<input type="text" id="summa" name="summa" value="0" onkeypress="print_summa();">
</form>
<div id="text_summa"> </div>
</body>
</html>

Как видите в #text_summa появляется предыдущее значение поля #summa.

Что можно сделать вместо onkeypress для одновременного изменения суммы и её дублировании в DIV

Edited by WiciN
Link to comment
Share on other sites

  • 0
В то время, как вы нажимаете клавишу, еще никакой цифры в поле не добавляется. Поэтому вместо onkeypress="print_summa();" используем onkeyup="print_summa();"

Отлично спасибо, что-то мне onkeyup не попадалось нигде я и не знал о его существовании

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy