每当有人在textarea
按 时,我就会调用一个函数。现在,我想在按下 时禁用new line
或break
。
当按下 shift + enter 时,new line
应该有效。在这种情况下,函数不应该被调用。
这是jsfiddle演示: http://jsfiddle.net/bxAe2/14/
答案 0 :(得分:34)
试试这个
$("textarea").keydown(function(e){
// Enter was pressed without shift key
if (e.keyCode == 13 && !e.shiftKey)
{
// prevent default behavior
e.preventDefault();
}
});
更新你的小提琴
$(".Post_Description_Text").keydown(function(e){
if (e.keyCode == 13 && !e.shiftKey)
{
// prevent default behavior
e.preventDefault();
//alert("ok");
return false;
}
});
答案 1 :(得分:2)
下面的代码是为了防止调整“textarea”的大小,避免在textarea内滚动条,也防止按下回车键时进入下一行。
style.css
textarea {height:200px; width:200px;overflow:hidden;resize: none;}
index.html
<textarea></textarea>
Script.js
$("textarea").keydown(function(e){
// Enter pressed
if (e.keyCode == 13)
{
//method to prevent from default behaviour
e.preventDefault();
}
});
答案 2 :(得分:0)
$(".Post_Description_Text").keypress(function(event) {
if (event.which == 13) {
alert("Function is Called on Enter");
event.preventDefault(); //Add this line to your code
}
});
答案 3 :(得分:0)
对于Angular用户
虽然现有工作解决方案,但如果有人使用 Angular 遇到此问题,您可以使用以下内容禁用新行:
添加<textarea ng-trim="false" ng-model='your.model' ...
在您的控制器中,添加:
$scope.$watch('your.model', function(newvalue, oldvalue) {
if (newvalue && newvalue.indexOf('\n') > -1) {
$scope.your.model = oldvalue;
}
});
答案 4 :(得分:0)
React:带有值和 onChange 事件的 textarea
const PreventTextAreaEnter = () => {
const [comment, setComment] = useState();
const handleTextArea = (e) => {
console.log({e}) // Destructure to get a more accurate log
// Return if user presses the enter key
if(e.nativeEvent.inputType === "insertLineBreak") return;
setComment(e.target.value);
};
return (
<>
<textarea value={comment} onChange={ (e) => { handleTextArea(e) } />
</>
)
}
答案 5 :(得分:-3)
在HTML
中使用%20
代码而不是input
代码