每当有人按下enter. textarea
现在我想禁用new line
或按下break
时。enter
所以new line
应该在按下shift+时工作。enter在这种情况下,不应调用该函数。
这是 jsfiddle 演示:http: //jsfiddle.net/bxAe2/14/
每当有人按下enter. textarea
现在我想禁用new line
或按下break
时。enter
所以new line
应该在按下shift+时工作。enter在这种情况下,不应调用该函数。
这是 jsfiddle 演示:http: //jsfiddle.net/bxAe2/14/
尝试这个
$("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;
}
});
下面的代码是为了防止调整“textarea”的大小,避免textarea内的滚动条,并防止在按下回车键时进入下一行。
样式.css
textarea {height:200px; width:200px;overflow:hidden;resize: none;}
索引.html
<textarea></textarea>
脚本.js
$("textarea").keydown(function(e){
// Enter pressed
if (e.keyCode == 13)
{
//method to prevent from default behaviour
e.preventDefault();
}
});
反应:带有值和 onChange 事件的文本区域
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) } />
</>
)
}
$(".Post_Description_Text").keypress(function(event) {
if (event.which == 13) {
alert("Function is Called on Enter");
event.preventDefault(); //Add this line to your code
}
});
对于 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;
}
});
在 HTML 中使用input
标签而不是标签textArea