Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改下拉列表后填充多个隐藏字段_Javascript_Jquery_Struts2 - Fatal编程技术网

Javascript 更改下拉列表后填充多个隐藏字段

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(

我正在用列表填充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('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'" />