我这里有个问题。我有一个jquery模式对话框,其中有两个单选按钮。在我的代码中,我有jQuery、ajaxStart和ajaxStop处理程序来检查Ajax请求(我还弹出了另一个jquery对话框来显示加载.当有一个Ajax请求正在执行时,消息或其他东西)。当我选择每个单选按钮时,就会发出一个ajax请求。我遇到的问题是,由于ajax事件(ajaxStart,ajaxStop),当我单击单选按钮时,没有选择它们(尽管我获得了单选按钮的正确值)。知道是什么导致的吗?
你可以看到我用这个小提琴表示什么的例子
谢谢
发布于 2012-02-03 11:09:20
问题似乎来自于modal: true对话框的#ajax-dialog选项。如果将选项设置为false,则该选项将按预期工作。升级到最新版本的jquery和jquery似乎没有解决问题。
解决方案1
将模态选项设置为false。
$('#ajax-dialog').dialog({
autoOpen: false,
modal: false, // set to false
title: 'Loading...'
});演示
解决方案2
您可以使用插件BlockUI,它允许阻塞整个页面或特定元素。它的工作方式是显示一个覆盖div (在页面或元素上),禁止与底层内容进行任何交互。您可以显示一条消息并自定义外观。
阻塞对话框内容(用无线电台框):
$("#ajax-dialog").ajaxStart(function() {
$('#gender-dialog').block({
message: '<h1>Loading...</h1>',
css: { border: '3px solid #a00' }
});
});
$("#ajax-dialog").ajaxStop(function() {
$('#gender-dialog').unblock();
});演示
阻塞整页:
$("#ajax-dialog").ajaxStart(function() {
$.blockUI({ message: '<h1>Loading...</h1>', baseZ: 2000 });
});
$("#ajax-dialog").ajaxStop(function() {
$.unblockUI();
});请注意选项baseZ在本例中,这是覆盖层的z索引,默认值为1000。将其设置为比对话框更高的内容来覆盖它。
演示
https://stackoverflow.com/questions/9122978
复制相似问题