-1

jQueryに次のスクリプトがあります:

var cval5 = ' ';
$(':input[value^="ltrDataColumn"]').filter(':checked').each(function (index) {
    var val = (this).value;
    val = val.replace('ltrDataColumn', '');
    cval5 = cval5 + val + '@@';
});

HTML:

<select multiple="multiple" style="width:370px">
    <option value="ltrDataColumnred">Red</option>
    <option value="ltrDataColumngreen">Green</option>
    <option value="ltrDataColumnblue">Blue</option>
    <option value="ltrDataColumnorange">Orange</option>
    <option value="ltrDataColumnpurple">Purple</option>
    <option value="ltrDataColumnyellow">Yellow</option>
    <option value="ltrDataColumnbrown">Brown</option>
    <option value="ltrDataColumnblack">Black</option>
</select>

上記のリストでは黄色のみを選択していますが、yellow@@yellow@@代わりに結果が表示されていyellow@@ます。

値を2回追加しています。私は多くのことを試しましたが、なぜ各値を 2 回追加するのかを再現できません。

4

3 に答える 3

0

select要素を使用しています。したがって、スクリプトは次のようになります。

var cval5 = ' ';
var select = $("select[multiple='multiple']");
var value = select.val();
if(value != null) {
    for(var i=0; val=value[i]; i++) {
        val = val.replace('ltrDataColumn', '');
        cval5 = cval5 + val + '@@';
    }
}
alert(cval5);

デモhttp://jsfiddle.net/krasimir/PYpFy/4/

于 2013-09-16T09:58:38.083 に答える