2012-09-10 48 views
2

随着按钮的按下,我遍历选择列表中的选项。我希望将所有这些选项(选项的值)附加到隐藏字段中,由管道|分隔。到目前为止,我已经提出了这个问题,但是,它只是将选项的最后一个值放入隐藏字段中?将选项值附加到隐藏字段?

//Select all cities 
$jq("input#checkcities").click(function() { 

    $jq(".select-cities > option").each(function() { 
     var zipCodeValue = $jq(this).val(); 

     $jq(".select-cities option").attr("selected", "selected"); 
     $jq(".select-cities option").appendTo(".chosen-cities"); 

     //Put value of cities in hidden field. 
     $jq('.hiddenFieldChosenCities').val(zipCodeValue); 

    }); 
}); 
+2

为什么不添加的所有值设为一个变量,然后将其分配给隐藏字段? – freebird

回答

1

尝试这样

$jq('.hiddenFieldChosenCities').val($jq('.hiddenFieldChosenCities').val() + '|' + zipCodeValue); 
+0

太棒了,那个工作完美:) Thx – nuffsaid

+0

很高兴它有助于你。没有“thnx”朋友 – Gautam3164

0

您需要添加值:

$jq('.hiddenFieldChosenCities').val($jq('.hiddenFieldChosenCities').val() + '|' + zipCodeValue); 
3

您可以使用map方法:

var zipCodeValues = $jq(".select-cities > option").map(function() { 
          return this.value; 
        }).get().join('|'); 

$jq('.hiddenFieldChosenCities').val(zipCodeValues); 
+1

正是'map'。我正要提交相同的代码:) – VisioN

+0

是的,'map'也是我用的。 [Fiddle](http://jsfiddle.net/ult_combo/tDDXk/)代码。 –

+0

@FabrícioMatté特别感谢小提琴。 – undefined

0
  • 创建的字符串zipvalues
  • 循环在城市和追加城市到zipvalues
  • 最后将隐藏的字段值设置为zipvalues

    // Select all cities 
    $jq("input#checkcities").click(function() { 
        var zipvalues = ""; 
    
        $jq(".select-cities > option").each(function() { 
         var zipCodeValue = $jq(this).val(); 
    
         $jq(".select-cities option").attr("selected", "selected"); 
         $jq(".select-cities option").appendTo(".chosen-cities"); 
    
         zipvalues += "|" + zipCodeValue; 
        }); 
    
        //Put value of cities in hidden field. 
        $jq('.hiddenFieldChosenCities').val(zipvalues); 
    });