私はテキストエリアで作業しています。ユーザーがEnterキーを押すとフォームが送信されますが、Ctrlキーを押しながらEnterキーを押すと次の行に移動します。
これは、jqueryによってkeypressで呼び出される関数内で使用しているコードです。
if ( (e.keyCode == 10 || e.keyCode == 13) && e.ctrlKey)
//move to next line here
これを行う方法はありますか?
私はテキストエリアで作業しています。ユーザーがEnterキーを押すとフォームが送信されますが、Ctrlキーを押しながらEnterキーを押すと次の行に移動します。
これは、jqueryによってkeypressで呼び出される関数内で使用しているコードです。
if ( (e.keyCode == 10 || e.keyCode == 13) && e.ctrlKey)
//move to next line here
これを行う方法はありますか?
$('.parentElementClass').on('keyup', 'textarea', function(e) {
if(e.ctrlKey && (e.which == 13 || e.keyCode == 13)) {
$(this).val(function(i, val) {
return val + '\n';
});
}
});
これですべて設定されました。任意の時点でブレークラインを維持し、位置を維持します(IEなどのフォールバックを使用して最新のブラウザー技術を使用しようとしている間)。
$('#sillyTextarea').keydown(function (e) {
if (e.keyCode === 10 || e.keyCode == 13 && e.ctrlKey) {
// Ctrl-Enter pressed
// keyCode 10 is actually for Chrome (whacky I know...)
var el = document.getElementById('sillyTextarea'),
allText = $(this).val(),
currentPos = getCaret(el),
beforeText = allText.substr(0, currentPos),
afterText = allText.substr(currentPos);
$(this).val(beforeText + '\n' + afterText);
setCaretPosition(el, currentPos);
}
});
2つの機能の助けを借りて
function getCaret(el) { }
function setCaretPosition(el, caretPos) { }