我正在尝试通过参数将 javascript 对象发送到 Struts2 自动完成器操作。但它不起作用。
这是我的代码:
<script>
var nameList = new Array();
function func1(element)
{
console.log(element.value);
var index = nameList.indexOf(element.value);
element.checked ? nameList.push(element.value) : nameList.splice(index,1);
console.log(nameList.length+"---- "+nameList);
}
</script>
<s:form name="baseForm" id="baseForm">
<table width="100%" >
<tr>
<td ><s:text name="Units" /></td>
<td>
<s:iterator value="units" status="itr" id="un">
<input type="checkbox" onclick="func1(this)"
name="unitList[<s:property value="#itr.index"/>]"
value="<s:property value="#un" />" />
</s:iterator>
</td>
</tr>
<tr>
<td ><s:text name="Groups"/></td>
<td width="80%">
<sd:autocompleter href='get_groups.action?unitList=%{nameList}' id='unitAutoComplete' name='unitGroup' loadOnTextChange='true'
loadMinimumCount='1' showDownArrow='false' autoComplete='false' />
</td>
</tr>
</table>
</s:form>
根据所选的单位,组应填充在自动完成程序中。
所以我的第一个问题是是否可以通过参数将javascript对象发送到struts2操作中?
如果是,请建议我如何在操作中将 javascript 对象作为参数传递。
最佳答案
您不能在同一个请求中执行此操作。自动完成器标记在服务器端呈现,但您希望在呈现后使用 JavaScript 在客户端对其进行修改。
最好的办法是对服务器进行 ajax 调用,并将变量传递给执行该操作的操作,以修改自动完成操作返回的列表。
如何将 JavaScript 对象传递到服务器你应该知道你需要 JSON 格式。您可以阅读Action to accept dynamic json data from user interface获取如何将 JavaScript 对象转换为 JSON 并将其发送到操作的更多信息。
关于javascript - 如何在 Struts2 自动完成器操作中传递 javascript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42226042/