我想知道如何通过将id
存储在变量中然后通过id
变量获取值来获取输入框的值。这是我尝试过的。
<script>
var c=$("#inp").val();
var temp = "i"+c;
var obj = document.getElementById(temp).value;
alert(obj);
</script>
使用
<input type='text' class='form-control' value='$q6[$t2]' id='inp'>
/ php /
答案 0 :(得分:5)
您的代码有效,但也许您正在以错误的顺序执行某些操作,例如将脚本放在页面上的元素之前。如果您的元素按以下顺序排列,那么它将起作用。
<input type="text" id="i" value="asdf" />
<script>
var temp = "i";
var obj = document.getElementById(temp).value;
alert(obj);
</script>
根据您的问题编辑,给出此输入:
<input type='text' class='form-control' value='$q6[$t2]' id='inp'>
c的值可能不是你想象的那样。
var c = $("#inp").val(); //equals $q6[$t2] exactly
通过在它的前面添加一个i,你就可以得到 - i$q6[$t2]
现在你的脚本工作的唯一方法就是你在页面上有另一个带有该ID的元素。
<input type='text' id='i$q6[$t2]' value='output' />
我想知道你想要完成的是什么?如果是这样,这个片段就会证明这一点。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type='text' class='form-control' value='$q6[$t2]' id='inp'>
<input type='text' id='i$q6[$t2]' value='output' />
<script>
var c=$("#inp").val();
var temp = "i"+c;
var obj = document.getElementById(temp).value;
alert(obj);
</script>
答案 1 :(得分:2)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' class='form-control' value='test' id='inp'>
<br>
<input type='text' class='form-control' value='$q6[$t2]' id='itest'>
<script>
var inp = $("#inp");
function chng(){
var c=$("#inp").val();
var temp = "#"+"i"+c;
var obj = $(temp).val();
alert(obj);
}
chng();
inp.on("change", chng);
</script>
答案 2 :(得分:1)
当您致电getElementById
时,您会获得一个实时节点。这意味着它的属性将在页面中的元素被修改(调整大小,键入,选择)时动态更新。但是,如果将值复制到变量中,则在输入输入时,此存储的值不会更新。这可能是你问题的原因。
当&#34;更改&#34>时,您需要更新该变量。输入触发事件。
var myVal = null;
document.getElementById(temp).addEventListener("change", function(e) {
myVal = e.target.value;
alert(e.target.value);
});