Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: заполнение полей
 
 автор: class   (15.03.2010 в 03:11)   письмо автору
 
 

Здравствуйте.

Необходима функция для WM обменника.

Допустим у нас курс 1 WMZ = 30 WMR.

Имеется два текстовых поля.
<input name="wmz" type="text"> <input name="wmr" type="text">


Допустим в первое поле мы вводим 12.5, а во втором уже должно автоматическо заполниться 375.

И так-же наоборот, допустим во второе поле ввели 15.5, а в первом поле должно автоматически заполниться 0.516.

  Ответить  
 
 автор: DJ Paltus   (15.03.2010 в 10:19)   письмо автору
 
   для: class   (15.03.2010 в 03:11)
 


<script type='text/javascript'>

function convert(a, w){
    kurs = 30; //отношение валют

    arg = a.value; // значение редактируемого поля

    fld = (w == 1 ? document.getElementById('wmz') : document.getElementById('wmr')); // определяется поле-цель

    if(!isNaN(arg)) { fld.value = (w == 1 ? (arg / kurs).toFixed(2) : (arg * kurs).toFixed(2)); } //проверка на числовое значение исходного поля и вывод в целевое

    else fld.value = 'Ошибка';

    }
</script>

рубли <input id=wmr type="text" onkeyup="convert(this, 1);">
нерубли <input id=wmz type="text" onkeyup="convert(this, 2);">

  Ответить  
 
 автор: class   (15.03.2010 в 21:33)   письмо автору
 
   для: DJ Paltus   (15.03.2010 в 10:19)
 

спасибо

  Ответить  
 
 автор: sl1p   (15.03.2010 в 10:36)   письмо автору
 
   для: class   (15.03.2010 в 03:11)
 

<input name="wmz" type="text" onchange="calculate(this)"> <input name="wmr" type="text" onchange="calculate(this)">
<script>
function calculate(field)
{
    var wmz2wmr = 30;
    var field2 = field.name == 'wmz'? 'wmr' : 'wmz';
    var curr = field.value*1;
    curr = isNaN(curr)? 0 : curr;
    curr = field2 == 'wmr'? curr * wmz2wmr : curr / wmz2wmr;
    curr = Math.floor(curr*1000)/1000;
    document.getElementsByName(field2)[0].value = curr;
}
</script>

  Ответить  
 
 автор: class   (15.03.2010 в 21:35)   письмо автору
 
   для: sl1p   (15.03.2010 в 10:36)
 

спасибо, все работает, но есть небольшая проблемка.

А если ожидается много полей с именем wmr, то Ваш скрипт выводит результат в первое поле wmr.

Подскажите как различать поля?

Я конечно понимаю, что можно сделать разные имена у всех полей, но всё-же :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования