.html 工作,但 ajax 请求后不出现文本
Posted
技术标签:
【中文标题】.html 工作,但 ajax 请求后不出现文本【英文标题】:.html work, but text not appear after ajax request 【发布时间】:2013-01-31 03:36:12 【问题描述】:在 ajax 调用之后,我将 div buf
附加到某个消息框,但重新打开对话框后会出现文本。在 Chrome、firefox、IE 8 上,这可以正常工作,但在 ie 7 中则不行。
已编辑: 我在单击链接时打开了对话框窗口。然后我做ajax请求并收到一条消息。单击对话框中的按钮后,此消息应出现在对话框窗口中(在某些 div 中)。但在 IE7 中,对话框窗口重新打开后出现消息。
$("#promised_pay_dialog").dialog(
buttons:
"some button": function()
if ($('#confirm').is(':checked'))
$.ajax(
url: 'ajax/promisedPayment',
type: "POST",
data:
subsId:$("#sid").val()
,
success: function(buf)
$('#message_box').html(buf);
return false;
);
else
alert("some message");
,
"some button": function()
$(this).dialog("close");
,
show:
effect: "blind",
duration: 1000
,
hide:
effect: "explode",
duration: 1000
,
modal: true,
resizable: false,
width: 550,
height: 250
);
解决了问题,但没有令人满意:
点击链接后,调用函数createDialog("")
,不带参数。 ajax 请求后,接收消息并调用createDialog(buf)
。但我认为这不是一个好的解决方案。有什么想法吗?
function createDialog(mess)
$('#message_box').html(mess);
$("#promised_pay_dialog").dialog(
buttons:
"some button": function()
if ($('#confirm').is(':checked'))
$.ajax(
url: 'ajax/promisedPayment',
type: "POST",
data:
subsId:$("#sid").val()
,
cache:false,
success: function(buf)
createDialog(buf);
);
else
alert("some message");
,
"some button": function()
$(this).dialog("close");
,
show:
effect: "blind",
duration: 1000
,
hide:
effect: "blind",
duration: 1000
,
modal: true,
resizable: false,
width: 550,
height: 250
);
【问题讨论】:
请改进文字,无法理解。 可能与jquery版本有关?我知道在 2.0 中放弃了对旧版本的一些支持 我有对话框窗口,在“a href”点击时打开。比我做 ajax 请求并获取消息。单击对话框中的按钮后,此消息应出现在对话框窗口中(在某些 div 中)。但是在 IE7 中重新打开对话框窗口后会出现消息。 试试 jQuery 1.7.x 我发现它是迄今为止最稳定的版本。特别是关于 IE 版本 好像你的对话框没有刷新...删除所有效果再试一次... 【参考方案1】:.html()
知道 IE6-8 的问题
尝试替换以下内容
$('#message_box').html(buf);
与
$('#message_box').empty().html(buf);
【讨论】:
以上是关于.html 工作,但 ajax 请求后不出现文本的主要内容,如果未能解决你的问题,请参考以下文章
Js Validator插件远程规则,用于在Ajax调用后不刷新页面不工作的唯一值检查
jQuery tablesorter 插件在 AJAX 调用后不起作用
ServerXMLHTTP请求返回数据但301重定向后不返回最终页面的url