Jump to content
  • 0

Опять про событие event и FF


Sserg-135
 Share

Question

Понимаю что тем уже избитая, но к сожалению найденные по поискам решения не подошли (даже сам раньше задавал здесь похожий вопрос ). Итак есть в форме несколько полей ввода, где нужно вводить только цифры

<INPUT TYPE=text SIZE=4 MAXLENGTH=4 ID='ph_code' NAME='ph_code' onKeyPress="onlyDigit();" VALUE="<?php print $ph_code?>" TITLE='Только цифры: не более 4'>

и функция:

function onlyDigit()

// ввод только цифр

{

if (event.keyCode<45 || event.keyCode>57 || event.keyCode==45) event.returnValue = false;

}

Предложенные решения типа: event = event || window.event;

работают в ФФ, если в строке вызова пишу аргумент event : <INPUT ..... onKeyPress="onlyDigit(event);.." > и при этом не работает в IE. Соответственно работает в IE если пишу без аргумента: <INPUT ..... onKeyPress="onlyDigit();.." > но не работает в FF. Сосем без скобок и аргумента не работает нигде ))).

Причем в случае определения обработчика события onKeyPress для всего документа типа document.onkeypress=onlyDigit; скрип работает в обоих браузерах, но мне так не нужно, потому что есть поля ввода в которые нужно вводить и текст.

Помогите пожалуйста.

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

 <script type="text/javascript">
foo = function ( event ){
alert(event.keyCode);
}
</script>

<input type="text" onkeypress="foo(event)">

Событие срабатывает, нужный объект передается.

keyCode в FF работает только для функциональных и прочих клавиш. В инете полно кроссбраузерного кода, как получить нужное свойство.

Link to comment
Share on other sites

  • 0
Я обычно пишу так:

function foo(e) {
e = e || window.event;
var key = e.which || e.keyCode;

alert(key);
}

<input type="text" onkeypress="foo(event);">

И в IE получаю undefined ))

в FF работает

 <script type="text/javascript">
foo = function ( event ){
alert(event.keyCode);
}
</script>

<input type="text" onkeypress="foo(event)">

Событие срабатывает, нужный объект передается.

keyCode в FF работает только для функциональных и прочих клавиш. В инете полно кроссбраузерного кода, как получить нужное свойство.

то же самое в IE получаю undefined

"В инете полно кроссбраузерного кода " - вот нехочет он работать у меня и все тут

Link to comment
Share on other sites

  • 0
У вас IE не 4-й случайно? Код, который я выложил, полностью рабочий.

Да нет восьмой уже.

я весь в непонятках ;)

может события для ослика прописать отдельно через через определение типа браузера, но как-то это не кошерно?

Edited by Sserg-135
Link to comment
Share on other sites

  • 0
Да нет восьмой уже.

я весь в непонятках :blink:

может события для ослика прописать отдельно через через определение типа браузера, но как-то это не кошерно?

Проверил в 8й версии, все работает.

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