2011-12-08 87 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,所以檢查您的控制檯看到輸出)