Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > нужна помощь с прогой


Автор: hede 13.6.2007, 13:56
помогите боги джавы, нужна вот такая вещь:


запускаем файлик run.html, появляется окошко в него вводим число(любое, при этом ничего не происходит) но если нажимаем сочетание клавишь допустим ctrl+1 то у нас под окошком с цифрами появляется картинка которая забиндена на нажатие клавишь ctrl+1


единственное до чего я смог доехать это -


<html>
<body>
<p align="center" id='idf'>
<img border="0" src="ll.gif" width="100" height="30"> <br></br>  <font color=572929>   "Enter your card number"        </font color=572929></p>

<div align="center">
    <script LANGUAGE="JavaScript">
function print_pict()
   {
    a = new Object();
    a[1] = 'm.gif';
    a[2] = 'img2.gif';
    a[3] = 'img3.gif';
    a[4] = 'img4.gif';
    a[5] = 'img4.gif';
    a[6] = 'img4.gif';
    a[7] = 'img4.gif';
    
    inp=document.getElementById('inp').value;
    ch=inp.charAt(inp.length-1);
       document.getElementById('idf').innerHTML+="<img src='"+a[ch]+"' alt='"+a[ch]+"'>";
   }
  </SCRIPT>
  <input type="text" value="" onKeyUp='print_pict()' name="asd3" id="inp">
  </div>
</body>
</html>


но это не то потому что картинки выводятся при нажатии на числа  1,2,3,4,5, а мне надо на сочетание клавишь  ктрл+1 и дт


Автор: tux 13.6.2007, 14:39
Модератор: Переместил из Java: Общие вопросы

Автор: hede 13.6.2007, 17:23
что никто не может помочь?  smile 

Автор: GIK 19.6.2007, 15:36
Цитата

помогите боги джавы, нужна вот такая вещь:

Не боги и не джавы. smile
В принципе ctrl что тебе должен дать, для чего он? 
Можешь просто использовать нажатие клавишь "цифр" и защитить нажатие клавишь других символов.
Код

<html>
<body>
<p align="center" id='idf'>
<img border="0" src="ll.gif" width="100" height="30"> <br></br>  
<font color=572929>"Enter your card number" </font color=572929></p>

<div align="center">
    <script LANGUAGE="JavaScript">

function print_pict(e)
   {
   var inp  = document.getElementById("inp").value; 
   var kode = e.keyCode-48; 
   if(kode<0 || kode>9) return;
  
    a = new Object();
    a[1] = 'm.gif';
    a[2] = 'img2.gif';
    a[3] = 'img3.gif';
    a[4] = 'img4.gif';
    a[5] = 'img4.gif';
    a[6] = 'img4.gif';
    a[7] = 'img4.gif';
  document.getElementById('idf').innerHTML+="<img src='"+a[kode]+"' alt='"+a[kode]+"'>";

   }
  </SCRIPT>
  <input type="text" value="" onKeyUp='print_pict(event)' name="asd3" id="inp">
  </div>
</body>
</html>

Если время будет посмотрю что можно сделать с ctrl  smile 


Автор: hede 21.6.2007, 18:31
Не боги и не джавы. smile
В принципе ctrl что тебе должен дать, для чего он? 
Можешь просто использовать нажатие клавишь "цифр" и защитить нажатие клавишь других символов.


вообщем надо задать показ определенной картинки определеным сочетанием клавишь,  или просто нажатием какой то буквы НО НЕ ЦИФРЫ

Автор: Alx 22.6.2007, 02:32
Код

document.onkeydown = function(e)
{   e = e||window.event;
    if(e.ctrlKey && e.keyCode<59 && e.keyCode>47)
        return callback(e.keyCode-48);
}


вот эта функция, вызывает callback если были нажаты ctrl+(0-9) и пердает ей эту цифру.

Автор: hede 22.6.2007, 11:55
а может кто ниб это скомпонавать в едунию прогу? а то я что то запутался совсем


тоесть в прогу в которой будет уже задато что  при нажатии  ctrl+1 показывается картинка 1.gif

ПЛИЗ

Автор: Alx 22.6.2007, 12:30
копипастим мою функцию,
меняем имя функции с callback() на print_pict(),
в print_pict() прописываем параметр n, который обозначает цифру,
убираем лишние две строчки, связанные с инпутом,
заменяем a[ch] на a[n],
убираем событие onKeyUp с инпута:

Код

<html>
<body>
<p align="center" id='idf'>
<img border="0" src="ll.gif" width="100" height="30"> <br></br>  <font color=572929>   "Enter your card number"        </font color=572929></p>

<div align="center">
    <script LANGUAGE="JavaScript">

document.onkeydown = function(e)
{   e = e||window.event;
    if(e.ctrlKey && e.keyCode<59 && e.keyCode>47)
        return print_pict(e.keyCode-48);
}

function print_pict(n)
   {
    a = new Object();
    a[1] = 'm.gif';
    a[2] = 'img2.gif';
    a[3] = 'img3.gif';
    a[4] = 'img4.gif';
    a[5] = 'img4.gif';
    a[6] = 'img4.gif';
    a[7] = 'img4.gif';
    
       document.getElementById('idf').innerHTML+="<img src='"+a[n]+"' alt='"+a[n]+"'>";
   }
  </SCRIPT>
  <input type="text" value="" name="asd3" id="inp">
  </div>
</body>
</html>

Автор: hede 26.6.2007, 18:41
здорово!!!!!!!!!!!!
 а как сделать так что бы больше одного раза не нажималось, или если бы нажималось то картинки бы заменялись, а то я нажал ctrl+1  10 раз  и появилось 10 машинок

Автор: Alx 26.6.2007, 22:54
Код

<html>
<body>
<p align="center" id='idf'>
<img border="0" src="ll.gif" width="100" height="30"> <br></br>  <font color=572929>   "Enter your card number"        </font color=572929></p>
<div align="center">
<script LANGUAGE="JavaScript">

var pasted = [];

var a = [];
a[0] = 'm.gif';
a[1] = 'img2.gif';
a[2] = 'img3.gif';
a[3] = 'img4.gif';
a[4] = 'img4.gif';
a[5] = 'img4.gif';
a[6] = 'img4.gif';

document.onkeydown = function(e)
{   e = e||window.event;
    if(e.ctrlKey && e.keyCode<59 && e.keyCode>47)
        return print_pict(e.keyCode-48);
}
function print_pict(n)
{   if(("|"+pasted.join("|")+"|").indexOf("|"+n+"|") != -1) return;

    pasted.push(n);
    document.getElementById('idf').innerHTML+="<img src='"+a[n-1]+"' alt='"+a[n-1]+"'>";
}
  </SCRIPT>
  <input type="text" value="" name="asd3" id="inp">
  </div>
</body>
</html>


мм, как вам реализация поиска элемента в массиве? smile никаких циклов!) ну почти smile 
сам придумал)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)