javascript - 如何通过在元素外部单击将元素设置为只读

标签 javascript jquery html

我有一个 <input>元素设置为 readonly默认情况下:

<input readonly id="uniqueId" type="text" ondblclick="onDoubleClick(this.id)">

如果用户双击该元素,它将被设置为可编辑:

function onDoubleClick(id){
    var element = $('#'+id);
    if (element.prop('readonly')==true) { element.prop('readonly', false);}
    else { element.prop('readonly', true); } 

显然是这个<input>元素将保持可编辑状态,直到用户再次双击它。我想知道我是否可以链接鼠标 click这发生在<input>之外元素再次将其变为只读。如何实现?

最佳答案

您可以对文档进行任何单击,使该元素变为只读。

function onDoubleClick(id) {
  var element = $('#' + id);
  if (element.prop('readonly') == true) {
    element.prop('readonly', false);
  } else {
    element.prop('readonly', true);
  }
}

function inputClicked(e) {
    e.stopPropagation();
}

$(document).click(function() {
  $('#uniqueId').prop('readonly', true);
});
input[readonly] {
  background: lightgray;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input readonly id="uniqueId" type="text" onclick="inputClicked(event)" ondblclick="onDoubleClick(this.id)">

关于javascript - 如何通过在元素外部单击将元素设置为只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40900606/

相关文章:

html - XHTML:将 DIV 放在 A 标签中

javascript - 多个文本区域的字数限制

JavaScript - 如何使其更加动态?

javascript - 如何以这种方式使用 css 定位自动调整 html block 元素(附照片)

javascript - 这个选择器是如何工作的?

javascript - jQuery 显示隐藏多个链接

javascript - 如何使用javascript或jquery检查元素的父元素本身是否是最后一个子元素

javascript - div 位于表单内时的 div 单击事件

javascript - AngularJS 中的继承和嵌套 View

jquery - 如何在 jQuery 的 Ajax 函数中获取正确的循环变量