我是jQuery的新手,我需要获取ID为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);
});
});
我知道括号是个问题但是由于其他原因需要保留。
有什么想法吗?
答案 0 :(得分:9)
$( document.getElementById( "id[2][t]" ) ).change( function(){
$( "#textpreview" ).text( this.value );
} );
答案 1 :(得分:4)
你可能会考虑修改你的ID(虽然我猜它们可能是自动生成的)。根据{{3}},您的ID对规范无效
答案 2 :(得分:0)
改为使用属性选择器:
var sel = $("[id='id[2][t]']");
sel.change(function() {
$("#textpreview").val(sel.text());
});
答案 3 :(得分:0)
Plain Old 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));
}
啊......现在感觉不是更好吗?
答案 4 :(得分:-1)
您向前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);
});
答案 5 :(得分:-4)
您可以尝试使用属性选择器而不是ID选择器。
$('[id="id[2][t]"]')