Javascript 更改下拉列表后填充多个隐藏字段
我正在用列表填充struts2 select下拉列表,如下所示Javascript 更改下拉列表后填充多个隐藏字段,javascript,jquery,struts2,Javascript,Jquery,Struts2,我正在用列表填充struts2 select下拉列表,如下所示 <s:select name="code" id="code" headerKey="-1" headerValue="Select" list="slist" listValue="code" listKey="id" onchange="changeLocation(this.selectedIndex)" /> onchange="document.getElementById(
<s:select name="code" id="code" headerKey="-1" headerValue="Select" list="slist" listValue="code" listKey="id" onchange="changeLocation(this.selectedIndex)" />
onchange="document.getElementById('locationValue').value=this.options[this.selectedIndex].text;"
但当我试图在javascript函数中找到一种方法来实现这一点时,我可以在代码更改时将id和country设置为隐藏字段。
请指导我如何实现这一点假设您的相应隐藏字段如下所示: 1)
2)
3)
在您的列表中,相应的元素具有id=“code,country,id”
(这些是下拉列表中的键)。然后可以使用以下功能:
function dropdownChange(dropdown) {
for (var i=0; i<dropdown.options.length; i++){
if (i != dropdown.selectedIndex) {
var optionTmp = dropdown.options[i];
document.getElementById(optionTmp.value + "-hidden").value = optionTmp.text;
//or if you want to save the list value not text
//document.getElementById(optionTmp.value + "-hidden").value = optionTmp.value;
}
}
}
功能下拉更改(下拉){
对于(var i=0;i请尝试使用此代码
<s:select name="code" id="code" headerKey="-1" headerValue="Select" list="slist" listValue="code" listKey="id" onchange="setHiddenValue()" />
function setHiddenValue(){
var codeValue= $("#code option:selected").text();
var codeKey= $("#code").val();
$("#locationValue").val(codevalue);
}
函数setHiddenValue(){
var codeValue=$(“#代码选项:选中”).text();
var codeKey=$(“#code”).val();
$(“#locationValue”).val(代码值);
}
好的,如果我理解正确,这是您的要求
发生更改事件时,您希望将所选值及其索引和另一个值发送到操作类
如果你确实想要以上的要求
试试这个可能会有帮助
<s:select name="code"
id="code"
headerKey="-1"
headerValue="Select"
list="slist"
listValue="code"
listKey="id + ',' + country +','+ 'code'" />
在操作类
中创建一个getter
和setters
,然后用,
分隔符拆分该字符串
我没有试过这个。我想它可能有用。你有更多的代码可以提供给我们吗?第二行的随机onchange
代码在你的代码中实际在哪里?Kamil,我在列表中有3个字段,比如id、代码和国家,所以我可以将id分配给OptionTemp的测试,将值分配给OptionTemp,但是我应该如何将国家分配给e hidden variablePriyanka,当我在脚本中使用jquery代码时,它会给我错误setHiddenValue未定义定义整个函数setHiddenValue()在选择标记之前。函数应该被标记通过使用上面的选择,我得到了所有3件事作为下拉列表的值,如下所示在html代码中选择SJC1 SJC10 SJC11我如何设置3个字段的值作为隐藏值为3个单独的变量,如1应该是分配为id,236为countyId,SJC1为locationValue。是的,但我需要在javascript中获得它,以便在更改下拉列表时将值设置为隐藏变量。您提到过我可以在Action类中创建一个getter和setter。我需要为所有3个字段(即id、国家/地区和代码)创建单独的getter setter吗?是的您为code
创建getter
和setter
是select
标记的名称,您将使用获得所有三个值,
delimeter在动作类中,您可以根据需要拆分字符串。
<s:select name="code"
id="code"
headerKey="-1"
headerValue="Select"
list="slist"
listValue="code"
listKey="id + ',' + country +','+ 'code'" />