2013-02-01 56 views
0

我想要一個下拉列表,當我更改第一個下拉列表時發生更改。 我確定我的servlet是正確的,因爲它返回我需要的值,但是我的servlet不運行。當我調試它不會打到servlet中的斷點。動態下拉Jsp

我認爲這是我的JavaScript的東西。

這裏是JSP文件:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
"http://www.w3.org/TR/html4/loose.dtd"> 

<html> 
<head> 

<SCRIPT type="text/javascript" src="dropDownOnderdelen.js"></script> 
<title>File Uploading Form</title> 
</head> 
<body> 
<h3>File Upload:</h3> 
Select a file to upload: <br /> 
<form action="/Racing/UploadServlet" method="post" 
        enctype="multipart/form-data"> 
<input type="file" name="file" /> 
<br /> 
Logische Naam: <input type="text" name="logicalName"><br> 
Stuknr(automatisch,nog niet geimplementeerd): <input type="text" name="partNr"><br> 
Kost: <input type="text" name="cost"><br> 


Assembly: 
<select name = "assembly"> 
<c:forEach var ="assembly" items="${Assemblys}"> 
<option value="${assembly.id}">${assembly.name}</option> 
</c:forEach> 
</select> 
<select id="onderdeel"> 
<option>Kies eerst een assembly</option> 
</select> 
<br> 
    <textarea name="comments" cols="25" rows="5"> 
    Verdediging Design 
    </textarea><br> 
    <input type="submit" value="Upload File" /> 
</form> 
</body> 
</html> 

這是JavaScript文件

$(document).ready(function() { 
    $('#assembly').change(function() { 
    var selectedValue = $(this).val(); 
    var servletUrl = 'OnderdelenServlet?value=' + selectedValue; 

    $.getJSON(servletUrl, function(options) { 
     var dropdown2 = $('#onderdeel'); 
     $('>option', dropdown2).remove(); // Clean old options first. 
     if (options) { 
      $.each(opts, function(key, value) { 
       dropdown2.append($('<option/>').val(key).text(value)); 
      }); 
     } else { 
      dropdown2.append($('<option/>').text("Please select dropdown1")); 
     } 
    }); 
    }); 
}); 

該servlet是好,我很確信這一點,所以沒必要把它放在這兒。

回答

2

$( '#集')。改變===>#表示ID(元素ID)

在JavaScript中使用

地方在你的JSP文件,你已經<選擇>如 <選擇name = 「組件」>

所以分配 「ID」 以及給您<選擇>框 <選擇name =「一個ssembly」 ID =‘集結號’>

+0

謝謝,這確實是一個錯誤,但它仍然如果你需要i'l提供fillComboBox(數據,$( 「#代碼」))implementation..good運氣 – Nick

0

這裏是我在同一案件正在做

學科是我的第一個組合ID;

$("#discipline").change(function() { 
     var data = $("#discipline option:selected").text(); 

       $.ajax({ 
         type: 'POST', 
         url: 'registerdcodes?type=discipline&discipline='+data, 
         success:function(data){ 
        fillComboBox(data,$("#codes"));//populating secondcombo 
         } 
        }); 

    }); 

增加也fillcombomethod:

如果你需要 「請選擇您的選擇」 爲afirst項目通過isSelectRequiredtrue

而且villlagesString是sperated一個bigString |

//例如:villagesString應該這樣.. villagesString =「option1 | option2 | option3 | option4」;

function fillComboBox(villagesStrings,box,isSelctRequired){ 
     if(villagesStrings !=null){ 
      var villagesStrings = villagesStrings.split('|'); 
      if(isSelctRequired){ 
      box.append("<option value='null'>Please select your option</option>"); 
      } 
      for (var i = 0, l = villagesStrings.length-1; i <l; i++){ 
       var id =villagesStrings[i].substring(0,2); 
       var qtn =villagesStrings[i].substring(0,villagesStrings[i].length) 
       box.append("<option value="+qtn+">"+qtn+"</option>"); 
     } 
     } 

     } 
+0

,你可以幫我嗎?:) –

+0

由於沒有工作:( – Nick