2011-12-08 43 views
1

我试图从输入到输入文本域onkeyup中的值定义变量值。我以前从来没有这样做,不能找到它在谷歌这样想知道是否有人对如何做到这一点任何想法...输入类型值到变量

<input type="text" id="values" /> 

var numberone = ""; 
var numbertwo = ""; 
var numberthree = ""; 

想象用户键入到输入框“托马斯tankengine”托马斯会变成'var numberone'。 'the'会变成第二等等......

这可能吗?

+0

我想限制它,所以你只能有三个,但那是我需要读的东西,即时通讯新的JavaScript很抱歉看起来天真! – Liam

回答

1

您可以通过使用split()函数

空间分割字符串如

var words = document.getElementById("values").value.split(' '); 
var op1 = words[0]; 
... 
0

如果您不希望变量最终在全局范围内,可能但不明智,并且需要与eval混淆。每当变量变量可以解决问题时,通过使用数组(对于连续数据)或对象(对于已命名的数据),可以更好地解决这个问题。

这正是数组设计要处理的那种工作。

var numbers = document.getElementById('values').value.split(' '); 
console.log(numbers[0]); 
console.log(numbers[1]); 
console.log(numbers[2]); 
0

如何在一个数组的索引保存每个字,所以你可以有一个动态的数字的话:

var max_words = 3; 
$('#values').on('keydown', function (event) { 
    if (event.keyCode == 32) {//32 == space key 
     var arr = $(this).val().split(' '), 
      len = max_words < arr.length ? max_words : arr.length, 
      out = []; 
     for (var i = 0; i < len; i++) { 
      out.push(arr[i]); 
     } 
    } 
}); 

这里是一个jsfiddle来演示此代码:http://jsfiddle.net/r8dXw/1/(请注意,输出记录通过console.log,所以检查您的控制台看到输出)