javascript - AJAX 调用后 HTML 选择不工作

标签 javascript html ajax jsp

这是直接的 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);
}

最佳答案

好的,我找到了问题所在,是拖动例程劫持了功能。 当我禁用拖动时,它起作用了。 我现在更改了拖动功能以检查光标是否在输入或选择标签上,并禁止在该点拖动。 感谢所有对此进行调查的人。

关于javascript - AJAX 调用后 HTML 选择不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41318088/

相关文章:

javascript - 在 data-ajax-success 调用中以编程方式在 ValidationSummary 中添加错误

javascript - 是否可以将值从 Rails 返回到客户端 javascript?

php - 如何将任意大小的 Javascript 数组传递给 PHP

带有前导零的 Javascript parseInt()

javascript - 任何干净的方式来下载文件,如 html5 下载属性

javascript - 如何在不中断动画的情况下清除 Canvas ?

html - 如何让这个列表停留在页面底部?

javascript - 为什么我的元素在通过 AJAX 重新加载时没有被定位

jquery - 无法读取 Controller 中的 $.ajax 数据

javascript - 在 Tomcat 7.0 服务器上将 Ajax 与 JSF 结合使用时遇到问题