AJAX 调用后 HTML 选择不起作用
Posted
技术标签:
【中文标题】AJAX 调用后 HTML 选择不起作用【英文标题】:HTML select not working after AJAX call 【发布时间】:2017-05-10 03:24:17 【问题描述】:这是直接的 html/javascript。该页面在单独执行时工作正常,但通过 AJAX 调用它在 IE11 上不起作用。 单击主页上的“显示”按钮后,它会打开一个带有选项的列表,从 XML 文件中读取;它接受双击以选择一个项目,并在警报框中显示选定的数字。 (它还将这个值写入 java 属性文件)。在 Chrome 和 FF 上它可以按预期工作,但在 IE11 中不行。 在 IE 上它拒绝选择任何项目。 AJAX 的返回页打开一个具有绝对定位和拖动可能性的 div。在我将带有列表的框拖到另一个地方后,它突然在 IE 中也可以工作(但仅在拖动多个像素之后)。 我只能假设它是 IE11 中的一种错误,但有解决方法吗?为什么拖动框会起作用?
这是重要的代码:
在 main.jsp 中:
<span id='showcurevent' onclick='showevent(<%=EVENTID%>, 0)'>Show </span>
<div id='Qevents' class='drag' ></div>
<script>
function showevent(nr, curevent)
var eventdiv=document.getElementById('Qevents');
var url="AJAX1.jsp?xml=<%=XMLfile%>&index="+nr+"&curevent="+curevent;
sendAjaxRequest(url, callback1);
function callback1(pushtext)
var eventdiv=document.getElementById('Qevents');
eventdiv.innerHTML=pushtext;
eventdiv.style.visibility='visible';
在 AJAX1.jsp 文件中:
<table><tr>
<td><select id='sel' size=10 ondblclick='SetSelectedEvent(this.value)'>
<option value='1'>1 text1</option>
<option value='2'>2 text2</option>
etc, several more ...
</select></td></tr>
</table>
在 main.jsp 文件中:
function SetSelectedEvent(nr)
var url="AJAX2.jsp?props=<%=propsFile%>&event="+nr;
sendAjaxRequest(url, callback2);
function callback2(pushtext)
var number = pushtext.substring(pushtext.indexOf("Value selected=")+15,pushtext.indexOf("</body"));
alert('value Selected: '+number);
在 AJAX2.jsp 中:
<%
String eventnr=request.getParameter("event");
%> Event selected=<%=eventnr%>
</body>
AJAX1和AJAX2其实是同一个文件,只是代码的不同部分,由request.parameter()的值来选择。
AJAX 代码本身位于单独的 .js 文件中:
function sendAjaxRequest(url, callback)
var xmlHttp=new XMLHttpRequest();
if (xmlHttp==null) // browser does not support AJAX
return;
xmlHttp.onreadystatechange=function()
if (xmlHttp.readyState==4 && xmlHttp.status == 200)
callback( xmlHttp.responseText);
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
【问题讨论】:
onclick='showevent(, 0)'> 如果是字符串,可能应该是 onclick='showevent("", 0)'>而不是变量 事件选择= 也缺少引号 事件选择= ? 都是数字(参见: 无论如何我都试过了,但没什么区别。 【参考方案1】:好的,我找到了问题,是拖动程序劫持了功能。 当我禁用拖动时,它起作用了。 我现在更改了拖动功能以检查光标是否在输入或选择标签上,并在该点禁止拖动。 感谢所有对此进行调查的人。
【讨论】:
以上是关于AJAX 调用后 HTML 选择不起作用的主要内容,如果未能解决你的问题,请参考以下文章