通过存储在变量中的id获取输入框的值?

时间:2015-04-20 13:16:38

标签: javascript jquery

我想知道如何通过将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 /

3 个答案:

答案 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);
});