Ctrl + Enter - реализация

594
.
seg0ro
Let Mortal Kombat begin
Ctrl + Enter - принятое сочетание клавишь для отправки сообщений в сети интернет, а так же в различных программах.
Программы мы упустим, а вот на сайтах остановимся подробнее...
Для реализации такого способа отправки сообщений наобходимо:
1 Создать файл scripts.js с содержанием
function ctrlEnter(event, formElem) {
if((event.ctrlKey) && ((event.keyCode == 10)||(event.keyCode == 13))){
formElem.submit.click();
}
}
2 Инклудим его в шапке
<script src="'.$set['homeurl'].'/js/script.js">
3 В форме ввода сообщения прописывам вызов функции
<form name="form" action="" onkeypress="ctrlEnter(event, this);" method="post">
-------
А теперь собственно сабж. Раньше меня все устраивало, но с выходом новой оперы 11.50 данное сочетание клавишь создает фоновую вкладку где и происходит добавление сообщения а текущая вкладка остается в изначальном состоянии. Как я не искал другой метод, так и не смог найти ничего подходящего (jquery не предлагать).
У кого как реализовано и работает ли это?
.
МеГо ДиЗаЙнЕрЪ
для вап движка? гг
.
ПФК ЦСКА forever!
nvitulev, Ну дык на этом двиге сидят много народу с компа.
.
Так не зря же ввели переменную mobile теперь можно многое использовать в двиге отдельно для компов и телефонов
.
Koenig
(\/)____o_O____(\/)
(function(){


window.addEventListener('keypress', function(e){
    if (e.ctrlKey && e.keyCode == 13 && e.target.form) {
        if (e.shiftKey) {
            e.target.form.setAttribute('target', '_blank');
        }
        var els = e.target.form.getElementsByTagName('input');
        for (var i = 0; i < els.length; i++)
         {
          if (els[i].getAttribute('type') && els[i].getAttribute('type').toLowerCase() == 'submit')
               {
            els[i].click();
            break;
           }
         }
        e.preventDefault();
        if (e.shiftKey) {
            e.target.form.removeAttribute('target');
        }
    }
}, false);

})();

document.getElementsByName('mess')[0].onkeypress = function() {
  if((event.ctrlKey) && ((event.keyCode == 10)||(event.keyCode == 13))) {
     this.submit.click();
  }
}

сохраняем в фаил ,
<script src="http://***/files/js/ctrlent.js"></script>

добавляем между тегами формы
, кроме IE работает на всех нужных арбузах
opera
safari
google chrome
mozila
.
Let Mortal Kombat begin
Koenig, не понял, добавлять вот это <script src="http://***/files/js/ctrlent.js"></script> между <form></form> ?
.
Koenig
(\/)____o_O____(\/)
ну да
echo '<script src="' . $rootpath . '/files/js/ctrlent.js"></script>';

между тегами нужной формы
<form name="mess" ... >
.
seg0ro
Let Mortal Kombat begin
снова поднимаю тему.
--------
Нашел код
<script language="javascript" type="text/javascript">
function ctrl_enter(e, form){
if (((e.keyCode == 13) || (e.keyCode == 10)) && (e.ctrlKey == true)) form.submit();
}
</script>
<form name="form" method="get" action="">
<textarea name="text" onkeypress="return ctrl_enter(event, this.form)" rows="10" cols="40"></textarea>
<br />
<input type="submit" />
Вся беда в том, что если мы пропишем имя для кнопки (например <input type="submit" name="submit" />), то тогда скрипт перестает выполнятся.
Поможите исправить
.
Let Mortal Kombat begin
Koenig (29.08.2011/09:14)
добавляем между тегами формы
, кроме IE работает на всех нужных арбузах
opera
safari
google chrome
mozila
только что решил проверить - то же самое в опере 11.50 открывается фоновая вкладка с запросом
.
ramzes
function SendComment(e, form) {
    e = e || window.event;
    if (e.keyCode == 13 && e.ctrlKey) {
form.submit();
    };
}

попробуй
Всего: 23