这是我的小提琴JsFiddle
$(function() {
$('.glyphicon-edit').click(function () {
$(this).parent().find('.form-control').removeAttr("readonly").focus();
});
$('.form-control:focus').blur(function() {
$(this).addAttr("readonly");
});
});
我想做什么? 我正在尝试创建一个动态可编辑的表单。它应该有
当有人点击编辑图标时,相应的输入字段应该聚焦并变得可编辑。 (我完成了这部分)。
接下来我想要的是当一个元素处于焦点状态并且它失去焦点时,我想再次向该元素添加readonly属性。这部分不起作用。可以有人解释我为什么。并给出一个解决方案
编辑: 在后面的部分我正在尝试提醒("一些消息")以检查事件是否被触发。发布时我刚用addAttr替换它。这是一个错字
答案 0 :(得分:2)
你可以改用:
$(function () {
$('.glyphicon-edit').click(function () {
$(this).parent().find('.form-control').prop("readonly", false).focus().one('blur', function () {
$(this).prop('readonly', true);
});
});
});
答案 1 :(得分:1)
没有addAttr()
功能。 attr
的setter看起来像这样:
$('.form-control').blur(function() {
$(this).attr("readonly", true);
});
此外,这里的:focus
伪造选择器是多余的,因为激活元素具有的blur
事件以便首先集中注意力。