7

ドロップダウンメニューに、例として以下のように各オプションを表示します。

scomp23 - Jack Turner

今、以下のこのコードで:

var text = $(this).find('option:selected').text();
var split = text.split(' - ');
$('#currentAdminAlias').val( split[0] );     
$('#currentAdminForename').val( split[1] );   
$('#currentAdminSurname').val( split[2] );  

私がやろうとしているのはscomp23#currentAdminAliasテキスト入力での表示(これは正常に機能します)、テキスト入力での表示Jack#currentAdminForenameおよびテキスト入力での表示Turnerです#currentAdminSurname

私が抱えている問題は、#currentAdminForenameテキスト入力のみに名前と名前の両方が表示されることです。

これが発生する理由はわかりましたが、私の質問は、名前と名前を別々のテキスト入力で表示するにはどうすればよいですか?

4

2 に答える 2

3
        var split = text.split(' ');
        $('#currentAdminAlias').val( split[0] );     
        $('#currentAdminForename').val( split[2] );   
        $('#currentAdminSurname').val( split[3] );  
于 2012-12-19T00:28:05.950 に答える
2
        var text = $(this).find('option:selected').text();
        var split = text.split(' - ');
        var names = split[1].split(' ');
        $('#currentAdminAlias').val( split[0] );     
        $('#currentAdminForename').val( names[0] );   
        $('#currentAdminSurname').val( names[1] );

または、必要な各値をHTML5データ属性としてオプション要素に添付することを検討してください。それはあなたに与えるだろう

        var element = $(this).find('option:selected');
        $('#currentAdminAlias').val(element.data('alias'));
        $('#currentAdminForename').val(element.data('forename'));
        $('#currentAdminSurname').val(element.data('surname'));

次のようなサンプルオプション要素を使用

        <option data-alias="scomp23" data-forename="Jack" data-surname="Turner">
          scomp23 - Jack Turner
        </option>
于 2012-12-19T00:35:23.473 に答える