Một cách thô sơ nhưng hiệu quả để làm cho công việc này rộng rãi hơn:
$.fn.dlg = function(options) {
return this.each(function() {
$(this).dialog(options);
$(this).keyup(function(e){
if (e.keyCode == 13) {
$('.ui-dialog').find('button:first').trigger('click');
}
});
});
}
Sau đó, khi bạn tạo một hộp thoại mới, bạn có thể làm điều này:
$('#a-dialog').mydlg({...options...})
Và sử dụng nó như một hộp thoại jquery bình thường sau đó:
$('#a-dialog').dialog('close')
Có nhiều cách để cải thiện điều đó để làm cho nó hoạt động trong những trường hợp đặc biệt hơn. Với đoạn mã trên, nó sẽ tự động chọn nút đầu tiên trong hộp thoại làm nút để kích hoạt khi nhấn enter. Ngoài ra, nó giả định rằng chỉ có một hộp thoại hoạt động tại bất kỳ thời điểm nào có thể không phải là trường hợp. Nhưng bạn hiểu ý rồi đấy.
Lưu ý: Như đã đề cập ở trên, nút được nhấn khi nhập phụ thuộc vào thiết lập của bạn. Vì vậy, trong một số trường hợp, bạn sẽ muốn sử dụng: bộ chọn đầu tiên trong phương thức .find và trong các trường hợp khác, bạn có thể muốn sử dụng bộ chọn: cuối cùng.