我有ajax生成的输入字段
<input type="text" value="naeem" onblur="updateAttendee(1)" id="first_name_1" name="first_name_1" placeholder="First Name">
当用户输入数据并点击输入字段外的任何位置时,onblur都可以正常工作,但如果用户输入值并直接按下浏览器刷新按钮,onblr就不起作用
我的updateAttendee()函数:
function updateAttendee(attendee_id) {
var first_name = $("#first_name_"+attendee_id).val();
var last_name = $("#last_name_"+attendee_id).val();
var email = $("#email_"+attendee_id).val();
$.ajax({
type: "POST",
data: "attendee_id="+attendee_id+"&first_name="+first_name+"&last_name="+last_name+"&email="+email,
url: "<?php echo $registry->getObject('url')->getEventUrl();?>index.php?mod=eventsiteAjax&func=ajaxUpdateAttendee",
dataType: 'json',
success: function(data) {
if(data['status'] == '1') {
$("#div_attendees").append(data['attendee_box']);
//success
} else {
// alert(data['error']);
}
}
});
}
首先为输入焦点和模糊保留一个标志
$("#first_name_1").focus(function() {
$(this).data('flag', 1);
});
$("#first_name_1").blur(function() {
$(this).data('flag', 0);
});
然后,如果聚焦后尚未触发模糊,则在窗口卸载时手动触发输入框的模糊事件。
$( window ).bind("beforeunload", function() {
if($("#first_name_1").data('flag') == 1){
$("#first_name_1").trigger('blur');
}
});