我正在尝试使用Javascript阻止用户输入textarea。
为什么这不起作用?
$("textarea").on("input", function (e) {
console.log("returning"); //This prints
e.preventDefault();
return false;
//Even though this code runs when text is inputed into the textarea, it still doesn't prevent user input. Shouldn't returning false do that?
});
答案 0 :(得分:1)
您正在阻止非可移动事件的默认操作,而不是输入。您需要禁用输入以获得所需的结果,以编程方式禁用输入:
$("textarea").prop("disabled", (1 === 2)/*some condition*/);
答案 1 :(得分:0)
Input Event :当
<input>
,<select>
或<textarea>
元素的值发生更改时,会同步触发DOM输入事件。
为此目的使用keydown
代替input
:
$('textarea').keydown(function(e) {
console.log("returning"); //This prints
e.preventDefault();
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea></textarea>
答案 2 :(得分:0)
如果你真的不希望光标出现在你的元素上,那么你根本不应该使用textarea或输入,但如果你必须,你可以这样做:
<textarea readonly='readonly'></textarea>
或
$('textarea').attr('readonly', 'readonly');