我有一個包含多個文本字段和textareas的表單。 當我按下輸入表格發送。 我已經解決了這個有:按enter鍵插入textarea中的換行符,但不提交表格
$('form').keypress(function (e) {
if (e.keyCode == 13) {
return false;
}
});
但隨後按下textarea的輸入不插入一個換行符。它什麼也沒做。
然後我嘗試:
$('body').keypress(function (e) {
if (e.keyCode == 13 && e.target.nodeName != 'TEXTAREA') {
return false;
}
});
然後形式按enter發送。我不知道如何解決它。我試過這個:
$('textarea').keypress(function (evt) {
if (evt.keyCode == 13) {
var textarea = document.getElementById("ad_text");
textarea.value += "\n";
// I'm guessing you may want this
return false;
}
});
好主意,但換行總是插在最後,而不是在當前的編輯位置。
我想另一件事是:
$.fn.getCursorPosition = function() {
var elem = $(this).get(0);
var pos = 0;
if ('selectionStart' in elem) {
pos = elem.selectionStart;
} else if ('selection' in document) {
elem.focus();
var sel = document.selection.createRange();
var selLength = document.selection.createRange().text.length;
sel.moveStart('character', -elem.value.length);
pos = sel.text.length - selLength;
}
return pos;
}
$.fn.setCursorPosition = function (pos) {
this.each(function (index, elem) {
if (elem.setSelectionRange) {
elem.setSelectionRange(pos, pos);
} else if (elem.createTextRange) {
var range = elem.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
});
return this;
}
$(document).ready(function() {
$('textarea').keypress(function (e) {
if (e.which == 13) {
var pos = $("#ad_text").getCursorPosition();
var valorInput = $("#ad_text").val();
var miValor1=valorInput.substring(pos, pos + 1);
//aqui poner algun if si pos se encuentra al final de la cadena se pone var miValor2= valorInput.replace(miValor1, miValor1 + "\r")
var miValor2= valorInput.replace(miValor1, "\r" + miValor1 )
$("#ad_text").val(miValor2);
$("#ad_text").setCursorPosition(pos + 1);
return false;
}
});
$('form').keypress(function (e) {
if (e == 13) {
return false;
}
});
$('input').keypress(function (e) {
if (e.which == 13) {
return false;
}
});
});
這工作得很好,但最終產生的文本換行,但它在文本的開頭, 我決定把一些「如果」,但我可以沒有想到任何事情。
使用Joomla模板: yoo_nite
而且我查看了所有的JS文件,我發現,當我刪除的文件 uikit.js textarea的效果很好,但是其他事情不工作。
此外,當我更改模板它工作正常。
但是,這是我開發的模板,我不想改變它。
該網站是 http://alanuncio.com/alanuncioitechno/index.php?option=com_adsmanager&view=edit&Itemid=106
我說讓表單提交,如果你按下回車鍵,或設置一個不同的默認按鈕。你試圖打破網絡設計的工作方式。 – ps2goat