私はjQueryを使うのが苦手なので、テキスト入力ボックスが変更されたときに値を取得する必要があります。id[2][t]
そのテキストをdiv
後でスタイルを設定する(jQueryでもスタイル設定)。
これは入力ボックスコードです:
<input id="id[2][t]" name="id[2][t]" maxlength="20" type="text">
これは私が表示しようとしているdivです:
<div id="textpreview"></div>
これは私が試したことであり、他のバリエーションもありますが成功していません。
$(document).ready(function() {
$('#id\\[2\\]\\[t\\]').change(function() {
var txtval = $('#id\\[2\\]\\[t\\]').text();
$("#textpreview").val(txtval);
});
});
括弧は問題であることを私は知っていますが、それらは他の理由で残る必要があります。
何か案は?
あなたが持っているval
そしてtext
後方に。それらを交換する:
$('#id\\[2\\]\\[t\\]').change(function() {
var txtval = $('#id\\[2\\]\\[t\\]').val();
$("#textpreview").text(txtval);
});
val
テキストボックスの値を取得するために使用されます。text
内にテキストを設定するdiv
。
次のようにして、コードをさらに単純化することができます。this
要素を再クエリする代わりに。
$('#id\\[2\\]\\[t\\]').change(function() {
var txtval = this.value;
$("#textpreview").text(txtval);
});
$( document.getElementById( "id[2][t]" ) ).change( function(){
$( "#textpreview" ).text( this.value );
} );
代わりに属性セレクタを使用してください。
var sel = $("[id='id[2][t]']");
sel.change(function() {
$("#textpreview").val(sel.text());
});
text
そしてval
間違った場所で使われています。 - James Montagnedocument
デフォルトでは、すべてのノードをその属性とその値が一致するかどうかを確認します。人々はこれを知っている/理解するべきです。 - Raynos
普通のJavaScript:
var elem = document.getElementById('id[2][t]');
elem.onchange = function()
{
var elem = document.getElementById('textpreview');
elem.removeChild(elem.firstChild)
elem.appendChild(document.createTextNode(this.value));
}
ああ...今はそれが気分が悪くないですか?
elem.addEventListener('change', function () { ... })
- Raynos.onchange
クロスブラウザです。addEventListener
ではありません) - Ryan Kinal.textContent
支える.addEventListener
あなたの引数はnullです - Raynos
IDセレクタの代わりに属性セレクタを使用してみることができます。
$('[id="id[2][t]"]')
\\[
そして\\]
? DOM内の1つのアイテムについて、誰がそれが遅いのかを気にかけますか?あなたはこの検索をキャッシュするか、あるいはそれにクラスを追加するか、あるいはIDを変更することで将来の検索をスピードアップすることができます。私はあなたのことを知らないが、文字列全体にバックスラッシュを付けるのは嫌いだ。ひどいようだ。私は彼らが嘔吐に役立つかもしれないあなたのために薬を持っていると思います、あなたが気分が良くなることを願っています。 - Rocket Hazmat
$(this).val() === this.value
覚えておいてください。あなたはjQueryを使う必要はありません。すべて - rlemon