如何将值从文本框加载到变量

时间:2016-05-12 08:11:37

标签: javascript

我正在寻找将文本框中的值加载到变量中的方法。

我试过了:

<p>
<textarea id="Text" name="Text" rows="6" cols="36"></textarea>
</p>
<p>
<input type="button" name="Button" value="Do it" onclick="javascript:job()" />
</p>
    function job() {

      var data = {};

      data = document.getElementById("Text").value;

      // other part of code
    }

这种方式不起作用。如果我把我的数据放在{}脚本中就可以完美地运行

工作示例:

var data = {
    "Something1": "Otherthing1",
    "Something2": "Otherthing2",
    "Something3": "Otherthing3",
};

但是数据每次都不同,这就是为什么我需要从用户输入加载它

编辑: 好吧,来自控制台的工作脚本将数据返回为

Object {Something1: "Otherthing1", Something2: "Otherthing2"} 

没有其他通过。

6 个答案:

答案 0 :(得分:1)

您需要使用data.text代替data

function job() 
{
      var data = '';
      data = document.getElementById("Text").value;
	  console.log(JSON.parse(data));
      // other part of code
}
<p>
<textarea id="Text" name="Text" rows="6" cols="36"></textarea>
</p>
<p>
<input type="button" name="Button" value="Do it" onclick="javascript:job()" />
</p>

答案 1 :(得分:1)

  1. 删除javascript:标签。不需要

  2. 如果您想在文本字段中粘贴JSON,则需要使用JSON.parse

  3. function job() {
      var data = JSON.parse(document.getElementById("Text").value);
      console.log(data);
    }
    <p>
      <textarea id="Text" name="Text" rows="6" cols="36">{"1": "49.9138756N, 16.6112022E", "2": "50.0225236N, 15.7659417E"}</textarea>
    </p>
    <p>
      <input type="button" name="Button" value="Do it" onclick="job()" />
    </p>

    首次尝试用有限的信息回答这个问题:

    您的代码似乎在这里工作:https://jsfiddle.net/mplungjan/bodmshj4/

    function job() {
      var data = {};
      // example 1
      data["text"] = document.getElementById("Text").value;
      console.log("Example 1",data);
      // example 2
      data = document.getElementById("Text").value;
      console.log("Example 2",data);
      // example 3
      data = { 
       "text":document.getElementById("Text").value,
       "Something2": "Otherthing2",
       "Something3": "Otherthing3"
      }  
      console.log("Example 3",data);
    }
    <p>
      <textarea id="Text" name="Text" rows="6" cols="36"></textarea>
    </p>
    <p>
      <input type="button" name="Button" value="Do it" onclick="job()" />
    </p>

    但可能不是你期望的。

    var data = {} 
    

    为数据指定一个空对象。

    data = document.getElementById("Text").value; 
    

    用字符串覆盖对象。

    也许其中一个就是你想要的

    var date = {} using 
    data["text"] = document.getElementById("Text").value; 
    

    data["text"] = document.getElementById("Text").value; 
    

    会设置data.text值 -

    var data = { 
       "text":document.getElementById("Text").value
    }  
    

    也适合你。

答案 2 :(得分:1)

您可以按object[key] = valueobject.key = value

添加对象键/值对
   <script type="text/javascript">
    var count = 0;
    var data = {};
    function job() {
          data["Something"+(++count)] =document.getElementById("Text").value;      
          console.log(data);
        }        
    </script>

答案 3 :(得分:0)

如果你想使用一个完全一个对象,你可以用这个来修改你的js函数:

var data = {}, index = 0;    
function job() {
   data['Something'+index] = document.getElementById("Text").value;
   index++;
}

答案 4 :(得分:0)

这对你好吗? https://jsfiddle.net/pLrjvk0x/

即使您将变量数据作为Object,值也会将其放入单个字符串中。我把它分开,这样你就可以拥有一个数组。我知道你想把数据变成一个Object而不是一个String,我只能用这种方式想象它(不是一个对象而是一个数组)。如果这不是你的问题,请告诉我。

var splitted = data.split("\n");

答案 5 :(得分:-2)

这可能会对你有所帮助 var data = document.getElementById(&#34; Text&#34;)。val();