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 не предлагать).
У кого как реализовано и работает ли это?
nvitulev, Ну дык на этом двиге сидят много народу с компа.
Так не зря же ввели переменную mobile
теперь можно многое использовать в двиге отдельно для компов и телефонов
(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
Koenig, не понял, добавлять вот это <script src="http://***/files/js/ctrlent.js"></script> между <form></form> ?
ну да
echo '<script src="' . $rootpath . '/files/js/ctrlent.js"></script>';
между тегами нужной формы
<form name="mess" ... >
снова поднимаю тему.
--------
Нашел код
<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" />), то тогда скрипт перестает выполнятся.
Поможите исправить
Koenig (29.08.2011/09:14)
добавляем между тегами формы
, кроме IE работает на всех нужных арбузах
opera
safari
google chrome
mozila
только что решил проверить - то же самое в опере 11.50 открывается фоновая вкладка с запросом
function SendComment(e, form) {
e = e || window.event;
if (e.keyCode == 13 && e.ctrlKey) {
form.submit();
};
}
попробуй