【发布时间】:2015-05-14 14:00:57
【问题描述】:
如何将我的 java 数组内容添加到空的 javascript 数组中?我试过了,但它不起作用。
这是我在 file.jsp 中的代码。
<%@page import="javax.portlet.PortletPreferences" %>
PortletPreferences prefs = renderRequest.getPreferences(); // here i am reading values from preferences in Liferay and rendering values
<select id="dropdown1" onchange="changeAction(this.value);">
<option value="" selected="selected" >Select</option>
<option value="">value1</option>
<option value="">value2</option>
</select>
<label>Device</label>
<%
String device1 = prefs.getValue("device1","");
String[] array1 = device1.split("\n"); // String[] array=["books","pens","cars"];
%>
<select id="dropdown2">
<option value="select" selected="selected">Select</option>
</select>
下面是我的 Java 脚本代码,jsp 代码和 javascripts 都在同一个 jsp 文件中。
<script>
function changeAction(optionVal){
var tempArrayLabel = [];
jQuery("#dropdown2").empty().append('<option value="-1" >Select</option>');
if(optionVal == "selected val in first drop down") {
tempArrayLabel = "add values from array1 or device1"; // update the drop down list
}
for (var i=0;i<tempArrayLabel.length;i++){
jQuery('<option/>').html(tempArrayLabel[i]).appendTo('#dropdown2');
}
}
</script>
感谢您的任何建议。
【问题讨论】:
-
String[] array=["books","pens","cars"];不是文档元素。文档元素是 html 标签而不是 java 代码。您可以编写一个包含逗号分隔值的 div,并将该 div 命名为 arrayDiv 并从中获取值。
-
@sgpalit.. 在我的情况下,我只需要更改 java 脚本代码,但不能更改 String[] array=["books","pens","cars"];因为这个数组是动态获取值的,但出于参考目的,我这样提到过。建议我使用javascript,以便我将值添加到“tempArrayValue”
-
好的,既然选项保持不变,为什么需要清除选择选项然后通过javascript再次添加它们?我的(当前)答案将不起作用,因为代码在两个文件中而不是一个文件中。如果您只需要清除所选选项,则无需删除选项并在选择框中重新添加它们
-
@ Nikos M ,jsp 代码和 java 脚本都在同一个 jsp 文件中。您的答案非常接近,但有些地方不见了。请单独更新您的 java 8 答案也..
-
@NikosM。你的代码运行良好!!好功夫。谢谢。
标签: java javascript arrays