2013-02-08 65 views
-1

我正在开发一个使用JSP的Web应用程序& Servlet。代码不适用于IE8和Mozilla Firefox

我使用google chrome 24.0.1312.57 mgson2.2.2

当我运行下面的代码它工作正常,但是当我尝试在IE8Mozilla Firefox 3.6.13运行相同的代码,那么相同的代码没有完全填满combobox

HTML:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Testing Browser</title> 
<script src="http://code.jquery.com/jquery-latest.min.js"></script> 

<script> 
$(document).ready(function() { 
     alert('in'); 
     //fill Salutation 
     var $ul = $(SALUTATION); 
     $.get('MyServlet?action=cmbSALUTATION', function(responseJson) { 
      $.each(responseJson, function(index, item) { 
       $('<option>').text(item).appendTo($ul); 
      }); 
     }); 
    }); 
</script> 
</head> 

<body> 
    <table> 
     <tbody> 
      <tr> 
       <td>Salutation</td> 
       <td><select name="SALUTATION" id="SALUTATION"> </select></td> 
      </tr> 
     </tbody> 
    </table> 
</body> 
</html> 

的Servlet:

//COMBOBOX - Get the data for column SALUTATION 
     if(request.getParameter("action")!=null) 
     if(request.getParameter("action").equalsIgnoreCase("cmbSALUTATION")) 
     { 
      String s2[][] = select.getData("select TITLE_ID from CRM_TITLE"); 
      List<String> list = new ArrayList<String>(); 
      for(int i=0;i<s2.length;i++) 
      { 
       list.add(s2[i][0]); 
      } 
      String json = new Gson().toJson(list); 
      response.setContentType("application/json"); 
      response.setCharacterEncoding("UTF-8"); 
      response.getWriter().write(json); 
     } 

请让我知道,如果我失去了一些东西..

在此先感谢....

+0

一个servlet使用这个JSP来编写带有JavaScript的HTML,它调用另一个servlet来获取你随后放入HTML的东西。为什么原始servlet无法获得您在此JSP中使用c:forEach所需的信息,而不是以这种方式使您的生活复杂化? – 2013-02-08 12:19:55

+0

@EdDaniel感谢您的建议 – Bhushan 2013-02-08 12:47:05

+0

@DownVoters downvoting的原因将不胜感激 – Bhushan 2013-02-09 04:00:51

回答

0

试试这个:

var $ul = $('#SALUTATION'); // <----id selector 
    $.get('MyServlet?action=cmbSALUTATION', function(responseJson) { 
     $.each(responseJson, function(index, item) { 
      $('<option />').text(item).val(index).appendTo($ul); 
     }); //----^^^^^^-----------------------------try with this 
    }); 
+0

感谢您的回答,但这仍然只适用于Chrome浏览器,而不是在IE和Mozilla – Bhushan 2013-02-08 12:10:12

+0

检查,如果ie和Mozilla已启用javascript。 – Jai 2013-02-08 12:20:16

+0

我检查了它,mozilla已启用javascript – Bhushan 2013-02-08 12:24:38

0

试试这个链接jQuery Function。大多数Jquery插件在IE中不受支持。 否则测试JavaScript lint错误。 JavaScript Online lint Error

+0

感谢您的回答,我已使用[JavaScript Online lint Error](http://www.javascriptlint.com/online_lint.php)测试JavaScript lint错误,但在javascript中没有错误 – Bhushan 2013-02-08 12:19:36

相关问题