2

少し問題があります。オプション付きの選択があります。1つのオプションを選択すると、textareaでテキストが変更され、ユーザーがテキスト領域に何かを書き込もうとしない間、すべてが完全に機能します。ユーザーが入力すると、テキストは変更されなくなります。コードは次のとおりです。オプションで選択:

   <select class="es" id="es1">
    <option id="edu1">1</option>
    <option id="edu2">2</option>
</select>

これが私が使用しているjQueryコードです(このコードでは、選択したオプションIDを取得し、ID番号でテキストを表示しています。すべてが完全に機能しています)

$('#es1').change(function() {
                    $('#sk1').html('');
                    var id = $(this).children(":selected").attr("id");
                    var idd = id.split('edu');
                    var num = idd[1];
                    $('#sk1').html(customTextByNumber[num]);
                });

id="sk1"のテキスト領域があります。最も興味深いのは、ユーザーがボックスに何か余分なものを入力したときに、他のオプションを選択してもテキストが変更されないことですが、要素の検査(google chrome)を見ると、テキストが変更されていることがわかりますが、鬼ごっこ。たとえば、ユーザーが入力しない場合、次のようにすべてがhtmlに表示されます。

<textarea id="sk1">text here</textarea>

ユーザーが何か余分なものを入力した後:

<textarea id="sk1">ecustom text and user text</textarea> Another options text which is not shown to user</textarea>

多分あなたはそのような問題を解決する方法についていくつかのアイデアを持っていますか?

解決済み誰かがそのような問題を抱えている場合は、これを使用してください

$('#sk1').val(something);

これの代わりに

$('#sk1').html('something'); (this is bad one)
4

2 に答える 2

3

.val()次のメソッドを使用する必要がありますtextarea

$('#es1').change(function () {
    $('#sk1').val(''); // This line is probably unnecessary...
    var id = $(this).children(":selected").attr("id");
    var idd = id.split('edu');
    var num = idd[1];
    $('#sk1').val(customTextByNumber[num]);
});​

何であるかわかりませんがcustomTextByNumber、のテキストを編集した後に機能するはずtextareaです。

于 2012-11-10T11:24:29.547 に答える
0

あなたはこれを試すことができます:

$('#es1').change(function() {
                $('#sk1').html('');
                var id = $(this).children(":selected").attr("id");
                var idd = id.split('edu');
                var num = idd[1];
                $('#sk1').val(num);
});

ここであなたはhttp://jsfiddle.net/tH8N5/を見ることができます

于 2012-11-10T11:19:18.217 に答える