我正在寻找将值从文本框加载到变量中的方法。
我已经尝试过:
<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"}
没有其他事情通过。
最佳答案
删除
javascript:
标签。不需要如果您想将 JSON 粘贴到文本字段中,则需要使用
JSON.parse
:
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
}
也适合你。
关于javascript - 如何将文本框中的值加载到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37180977/