我有一个文本字段,它有一个模糊事件,可用于检查数据库中存在的现有数据
当它处于编辑模式时,我不想进行数据库调用以检查数据库,因此将禁用此模糊事件。
http://jsfiddle.net/tdzfhzjy/50/
当编辑按钮时,如何禁用此模糊事件?
我是这样尝试的
var value = 'Home';
fillField();
function fillField() {
$("#label").val(value);
}
$(document).on('click', '#editbtn', function (event) {
$("#label").prop("readonly", true);
$("#label").val(value);
$('#label').unbind("blur");
});
$(document).on('blur', '#label', function (event) {
alert('onblur fired');
});
你能告诉我怎么做吗??
答案 0 :(得分:2)
这解决了它......
$(document).on('click', '#editbtn', function (event) {
$("#label").prop("readonly", true);
$("#label").val(value);
$(document).off('blur', '#label');
});
使用.off而不是.unbind,并关闭原始事件
答案 1 :(得分:2)
您的问题是,模糊事件未附加到您尝试解除绑定的特定标签上。它附加到文档然后在事件的目标中搜索#label选择器。
使用$(document).off('blur', '#label')
的问题在于,由于您正在使用绑定可能动态添加的元素,因此它将关闭所有符合条件的事件,而不仅仅是针对特定标签。< / p>
您始终可以创建数据属性或全局变量来区分正在编辑的元素,而不必担心重新绑定模糊。
这假设您有理由将其绑定到文档而不是实际标签。这对于单个文本字段和按钮来说会更好。
答案 2 :(得分:0)
var value = 'Home';
fillField();
function fillField() {
$("#label").val(value);
}
$(document).on('click', '#editbtn', function (event) {
$("#label").prop("readonly", true);
$("#label").val(value);
$('#label').unbind("blur");
});
$('#label').on('blur', function (event) {
alert('onblur fired');
});
&#13;