【问题标题】:HTML select not working after AJAX callAJAX 调用后 HTML 选择不起作用
【发布时间】: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)'>而不是变量
  • 事件选择= 也缺少引号
  • 事件选择= ?
  • 都是数字(参见:
  • 无论如何我都试过了,但没什么区别。

标签: javascript html ajax jsp


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 2015-11-20
    • 2020-09-09
    • 1970-01-01
    • 2017-05-05
    • 2014-09-19
    相关资源
    最近更新 更多