Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.10.2014, 11:55
Аспирант
Отправить личное сообщение для BARABANTEMO Посмотреть профиль Найти все сообщения от BARABANTEMO
 
Регистрация: 15.03.2012
Сообщений: 79

клавиатура всегда в нижнем регистре
пожалуйста подскажите как сделать чтобы при нажатии на это поле (input id="message" name="message") клавиатура вставала на нижний регистр и буквы писались бы только в нижнем регистре
спасибо всем
Ответить с цитированием
  #2 (permalink)  
Старый 28.10.2014, 12:06
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от BARABANTEMO
клавиатура вставала на нижний регистр
Регистр ты не переключишь никак.
Можешь либо задать text-transform:lowercase в css (тогда нижний регистр будет только визуально) либо ловить события keypress и приводить ввод к нижнему регистру.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 28.10.2014, 12:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

BARABANTEMO,
а перезаписывать value в нижнем регистре?
Ответить с цитированием
  #4 (permalink)  
Старый 28.10.2014, 12:18
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Еще не стоит забывать, что проверку на стороне клиента очень легко обойти. То есть, если это не чисто для удобства, то надо делать на сервере.

Последний раз редактировалось Erolast, 28.10.2014 в 12:20.
Ответить с цитированием
  #5 (permalink)  
Старый 28.10.2014, 12:24
Аспирант
Отправить личное сообщение для BARABANTEMO Посмотреть профиль Найти все сообщения от BARABANTEMO
 
Регистрация: 15.03.2012
Сообщений: 79

Сообщение от danik.js Посмотреть сообщение
ловить события keypress и приводить ввод к нижнему регистру.
можно пример как это делать
Ответить с цитированием
  #6 (permalink)  
Старый 28.10.2014, 12:31
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

http://learn.javascript.ru/play/HiS1Fb

<!DOCTYPE HTML>
<html>
  <head></head>
  
  <body>
    <textarea id="message"></textarea>
    <script>
      var message = document.getElementById('message');
      message.onpropertychange = message.oninput = function () {
        this.value = this.value.toLowerCase();
      };
    </script>
  </body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 28.10.2014, 12:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

Ruslan_xDD,
а курсор возвратить на место?
Ответить с цитированием
  #8 (permalink)  
Старый 28.10.2014, 12:45
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

рони,

Как вариант.

http://learn.javascript.ru/play/bExpt

<!DOCTYPE HTML>
<html>
  <head></head>
  
  <body>
    <textarea id="message"></textarea>
    <script>
      var message = document.getElementById('message');
      message.onpropertychange = message.oninput = function() {
        var selection = this.selectionStart;
        this.value = this.value.toLowerCase();
        this.selectionEnd = selection;
      };
    </script>
  </body>

</html>
Ответить с цитированием
  #9 (permalink)  
Старый 28.10.2014, 12:59
Аспирант
Отправить личное сообщение для BARABANTEMO Посмотреть профиль Найти все сообщения от BARABANTEMO
 
Регистрация: 15.03.2012
Сообщений: 79

хорошо расскажу всю проблему
<style type="text/css" rel="stylesheet">
.contjil{
height: 17px;
width: 22px;
margin: 7px 7px 0 9px;
float: left;
overflow: hidden;
position: relative;
}
.flgjil{cursor: pointer;
background: url('http://www.myvideo.ge/v4_imgs/kbd_flags.png') no-repeat 0 0;
display: block;
height: 17px;
width: 50px;
position: absolute;
top:0;
left:0;
}
</style>

<!--SEARCH START-->
<form id="jilform">
<div class="contjil">
<a class="flgjil" id="cbdjil" title="ქართული კლავიატურის გათიშვა"></a>
</div>
<input id="kbdjil" style="display:none;" type="checkbox" checked="" name="geo">
<input id="message" name="message">
</form>
<!--SEARCH END-->

<script type="text/javascript">
function handleKeys(e) {
var t = window.event ? event : e;
if (t.altKey || t.ctrlKey) return true;
var n;
n = e.which;
if (e.which == 96) geoobj.checked = !geoobj.checked;
var r = formobj.value.length - 1;
if (e.which == 96) {
var i = e.target;
var s = i.selectionStart;
i.value = i.value.substring(0, i.selectionStart) + "" + i.value.substring(i.selectionStart);
i.setSelectionRange(s, s);
return false
}
if (geoobj.checked) {
for (r = 0; r <= geo.length; r++) {
if (eng[r] == e.which) {
var i = e.target;
var s = i.selectionStart;
i.value = i.value.substring(0, i.selectionStart) + String.fromCharCode(geo[r]) + i.value.substring(i.selectionEnd);
s++;
i.setSelectionRange(s, s);
return false
}
}
status = n
}
return true
}
function changeVal() {
formobj2 = document.REPLIER.Post;
geoobj2 = document.REPLIER.geo;
formobj = formobj2;
geoobj = geoobj2;
var e = new Is;
if (e.konqueror && formobj.value == "") {
formobj.value = " "
}
if (e.ie4up) {
if (event.keyCode == 96) geoobj.checked = geoobj.checked ? false : true;
if (event.keyCode == 96) event.keyCode = ""
} else if (e.nav6up || e.konqueror || e.safari) {
document.onkeypress = handleKeys
}
if (geoobj.checked) {
if (e.ie4up || e.opera && !e.opera7up) {
var t;
t = event.keyCode;
for (i = 0; i <= geo.length; i++) {
if (eng[i] == event.keyCode) {
event.keyCode = geo[i]
}
}
status = t
} else if (e.nav6up || e.opera) {
document.onkeypress = handleKeys
} else {
alert("We doesn't currently support your browser");
geoobj.checked = false
}
}
}
eng = new Array(97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 87, 82, 84, 83, 67, 74, 90);
geo = new Array(4304, 4305, 4330, 4307, 4308, 4324, 4306, 4336, 4312, 4335, 4313, 4314, 4315, 4316, 4317, 4318, 4325, 4320, 4321, 4322, 4323, 4309, 4332, 4334, 4327, 4310, 4333, 4326, 4311, 4328, 4329, 4319, 4331, 91, 93, 59, 39, 44, 46, 96);
(function () {
String.prototype.pasteTo = function (e) {
e.focus();
if (document.selection) {
var t = document.selection.createRange();
if (t) {
t.text = this
}
} else if (e.selectionStart != undefined) {
var n = e.scrollTop,
r = e.selectionStart,
i = e.selectionEnd;
var s = e.value.substring(0, r) + this + e.value.substring(i, e.value.length);
e.value = s;
e.scrollTop = n;
e.setSelectionRange(r + this.length, r + this.length)
} else {
e.value += this;
e.setSelectionRange(e.value.length, e.value.length)
}
}, String.prototype.translateToKA = function () {
var e, t, n = [],
r = "abgdevzTiklmnopJrstufqRySCcZwWxjh";
for (var i = 0; i < this.length; i++) {
t = this.substr(i, 1);
if ((e = r.indexOf(t)) >= 0) {
n.push(String.fromCharCode(e + 4304))
} else {
n.push(t)
}
}
return n.join("")
}, GeoKBD = {
browser: {
isOpera: navigator.userAgent.toLowerCase().indexOf("opera") > -1,
isIe: navigator.userAgent.toLowerCase().indexOf("msie") > -1,
isIe6: navigator.userAgent.toLowerCase().indexOf("msie 6") > -1,
isIe7: navigator.userAgent.toLowerCase().indexOf("msie 7") > -1
},
event: {
get: function (e) {
return e || window.event
},
getKeyCode: function (e) {
e = this.get(e);
return e.keyCode || e.which
},
targetIs: function (e, t) {
e = this.get(e);
var n = e.target || e.srcElement;
return n.tagName.toLowerCase() == t ? n : null
},
attach: function (e, t, n, r) {
if (e.addEventListener) {
e.addEventListener(t, n, r)
} else if (e.attachEvent) {
return e.attachEvent("on" + t, n)
} else {
e["on" + t] = n
}
},
detach: function (e, t, n, r) {
if (e.removeEventListener) {
e.removeEventListener(t, n, r)
} else if (e.detachEvent) {
e.detachEvent("on" + t, n)
} else {
e["on" + t] = null
}
},
cancel: function (e) {
e = this.get(e);
if (e.stopPropagation) {
e.stopPropagation();
e.preventDefault()
} else {
e.cancelBubble = true;
e.returnValue = false
}
}
},
keyHandlers: {},
addKeyHandler: function (e, t) {
if (typeof e == "string") {
e = e.charCodeAt(0)
}
if (!this.keyHandlers[e]) {
this.keyHandlers[e] = []
}
this.keyHandlers[e].push(t)
},
handleKey: function (e) {
if (GeoKBD.keyHandlers[e]) {
var t = null;
for (var n = 0; n < GeoKBD.keyHandlers[e].length; n++) {
t = GeoKBD.keyHandlers[e][n];
if (t.constructor && t.constructor == Array) {
t[0][t[1]].call(t[0], e)
} else {
t(e)
}
}
}
},
map: function (e, t, n) {
var r = this,
i = [],
s = [];
if (e) {
if (e.constructor) {
if (e.constructor == String) {
i.push(e)
} else if (e.constructor == Array) {
i = e
}
if (i.length) {
for (var o in i) {
if (document.forms[i[o]]) {
s.push(document.forms[i[o]])
}
}
}
} else {
s.push(e)
}
} else {
s = document.forms
}
for (var o = 0; o < s.length; o++) {
e = s[o];
if (!e.fields || e.fields == undefined) e.fields = {};
if (e.ka == undefined) e.ka = e[n] ? e[n].checked : true;
if (t) {
if (typeof t == "string") t = [t];
for (var u = 0; u < t.length; u++) {
if (e[t[u]] && !e.fields[t[u]]) e.fields[t[u]] = t[u]
}
} else {
var a, f;
for (var u = 0; u < e.elements.length; u++) {
if (e.elements[u].type) {
a = e.elements[u].name || e.elements[u].id;
f = e.elements[u].type.toLowerCase();
if (a && (f == "text" || f == "textarea")) {
e.fields[a] = a
}
}
}
}
n = n || "geo";
e.switcher = n;
e.onkeypress = function (e) {
e = r.event.get(e);
if (e.altKey || e.ctrlKey) return;
if (!r.browser.isIe && !r.browser.isOpera && !e.charCode) {
return
}
var t, i = n,
s = r.event.getKeyCode(e);
if (s == 96) {
if (this[i]) {
this.ka = this[i].checked = !this[i].checked
} else {
this.ka = !this.ka
}
return false
} else if (this[i]) {
this.ka = this[i].checked
}
if (!this.ka) return;
if (t = r.event.targetIs(e, "textarea") || r.event.targetIs(e, "input")) {
if (!this.fields[t.name || t.id]) return;
text = String.fromCharCode(s);
kaText = text.translateToKA();
if (kaText != text) {
if (GeoKBD.browser.isIe) {
e.keyCode = kaText.charCodeAt(0)
} else {
kaText.pasteTo(t);
return false
}
}
}
}
}
e = s = i = null
},
mapIFrame: function (e) {
var t = function (e) {
if (e.altKey || e.ctrlKey) return;
var t = (e.target || e.srcElement).ownerDocument;
if (t.ka == undefined) t.ka = true;
var n = GeoKBD.event.getKeyCode(e);
var r = String.fromCharCode(n);
var i, s;
if (parent.document.forms[t.parentForm]) {
i = parent.document.forms[t.parentForm];
if (i.switcher && i[i.switcher]) {
s = i[i.switcher]
}
}
if (n == 96) {
t.ka = !t.ka;
if (s) s.checked = t.ka;
GeoKBD.event.cancel(e)
} else if (s) {
t.ka = s.checked
}
i = s = null;
if (t.ka) {
var o = r.translateToKA();
if (o != r) {
if (!GeoKBD.browser.isIe) {
t.execCommand("InsertHTML", false, o)
} else {
var u = t.selection.createRange();
u.pasteHTML(o)
}
GeoKBD.event.cancel(e)
}
}
};
var n = function (e) {
if (!GeoKBD.browser.isIe) {
GeoKBD.event.attach(this.document, "keypress", t, true);
GeoKBD.event.detach(this, "focus", n, true)
} else {
GeoKBD.event.attach(this.contentWindow.document, "keypress", t, true);
this.onfocus = null
}
};
var r = window.setInterval(function () {
var t = typeof e == "string" ? document.getElementById(e) : e();
if (t) {
for (var i = t.parentNode; i && i != document.body; i = i.parentNode) {
if (/form/i.test(i.tagName)) {
if (t.contentWindow.document) {
t.contentWindow.document.parentForm = i.name || i.id
} else {
t.document.parentForm = i.name || i.id
}
break
}
}
if (!GeoKBD.browser.isIe) {
GeoKBD.event.attach(t.contentWindow, "focus", n, true)
} else {
t.onfocus = n
}
t = null;
window.clearInterval(r)
}
}, 100)
}
};
window.GeoKBD = GeoKBD
})();        
$('#cbdjil').click(function(e)
{
e.preventDefault();
$('#kbdjil').click();
if($('#kbdjil').is(":checked")) {
$(this).attr('title','ქართული კლავიატურის გათიშვა');
$(this).animate({
left:'+0px'
},'fast');
} else {
$(this).attr('title','ქართული კლავიატურის ჩართვა');
$(this).animate({
left:'-29px'
},'fast');
}
});
$("#message").keypress(function(event)
{
if(event.which == 96) {
if($('#kbdjil').is(":checked")) {
$('#cbdjil').attr('title','ქართული კლავიატურის ჩართვა');
$('#cbdjil').animate({
left:'-29px'
},'fast');
} else {
$('#cbdjil').attr('title','ქართული კლავიატურის გათიშვა');
$('#cbdjil').animate({
left:'+0px'
},'fast');
}
}
});
GeoKBD.map('jilform','message');    
</script>

это переключатель языка между грузинским и английским - в нижнем регистре всё работает хорошо а вот когда включён капслок то вместо грузинских букв пишет большие английские
как сделать чтобы и в верхнем регистре писало грузинские соответственно
ременный пример

Последний раз редактировалось BARABANTEMO, 28.10.2014 в 13:08.
Ответить с цитированием
  #10 (permalink)  
Старый 28.10.2014, 13:05
Аспирант
Отправить личное сообщение для BARABANTEMO Посмотреть профиль Найти все сообщения от BARABANTEMO
 
Регистрация: 15.03.2012
Сообщений: 79

если кто знает подскажите где можно заказать подобную переделку скрипта
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильно ли я понял что коллекции нужно писать в нижнем регистре. DjDiablo AJAX и COMET 0 16.10.2013 02:34
JS загружает изображение всегда с локального кэша - почему? buhpro Общие вопросы Javascript 4 02.10.2013 21:01
Не всегда срабатывает onclick Almiur Events/DOM/Window 7 25.11.2011 11:39
Клавиатура на яваскрипте агафон Javascript под браузер 0 23.07.2010 10:59
Виртуальная клавиатура vvsh Events/DOM/Window 3 20.04.2010 17:36