0
<script type="text/javascript">
var CountryVal;
var StateVal;
$(document).ready(function(){
    $('#ItemCountry').change(function(){
        CountryVal = this.value; // value of the select element
        $("#StateFeeder").html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
        $('#StateFeeder').load('/StateFeeder/StateFeeder-Buy.html #StateFeeder-'+CountryVal, function(){
            $('#ItemState').change(function(){
                StateVal = this.value; // value of the select element
                $("#CityFeeder").html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
                $('#CityFeeder').load('/Country/'+CountryVal+'/_'+CountryVal+'_suburbs.html #Suburbs-'+StateVal, function(){
                    $('#CityFeeder select').attr('size', '5');
                    $('#CityFeeder select').change(function(){  
                        this.form['CAT_Custom_221342'].value=$(this).val();
                    }); 
                });        
            })
        });
    });
});           
</script>

上記の Jquery は、ドロップダウン メニューを他のページから現在のページにロードし、ユーザーが選択したときに値を別の入力フィールドに渡します。問題は、リモート ページの #StateFeeder から取得されたオプション値に次の形式が含まれていることです。

<option value="Kabardino-BalkarRepublic">Kabardino-Balkar Republic</option>
<option value="Karachay-CherkessRepublic">Karachay-Cherkess Republic</option>
<option value="KareliaRepublic">Karelia Republic</option>
<option value="KomiRepublic">Komi Republic</option>
<option value="MariElRepublic">Mari El Republic</option>
<option value="MordoviaRepublic">Mordovia Republic</option>

上記の値はノンストップの大文字の単語であり、以下のように大文字の単語の間にスペースを入れてフォーマットする必要があります (plz は "-" ところで単語を保持します) それらが現在のページに読み込まれるとき、読み込まれるとき、スペースのない値ユーザーが onchange アクションを実行し、後でフォーマットするための ID として使用されます。どうもありがとうございます:

<option value="Kabardino-Balkar Republic">Kabardino-Balkar Republic</option>
<option value="Karachay-Cherkess Republic">Karachay-Cherkess Republic</option>
<option value="Karelia Republic">Karelia Republic</option>
<option value="Komi Republic">Komi Republic</option>
<option value="Mari El Republic">Mari El Republic</option>
<option value="Mordovia Republic">Mordovia Republic</option>
4

1 に答える 1

2

私は提案します:

$('option').attr('value', function(i, h) {
    return h.replace(/([a-z])([A-Z])/g, '$1 $2');
});

JSフィドルデモ

[a-z]これにより、で正規表現を使用して、小文字( )とそれに続く大文字([A-Z])(2つの文字のそれぞれに一致し、それぞれを囲む括弧)が効果的に検索され、replace()小文字( with it)は、スペースを挿入してから大文字を挿入します。

リンクされたデモでは、div次のselect要素がの変更されたHTMLを示していますoption

于 2012-09-04T01:17:16.983 に答える