我正在寻找将文本框中的值加载到变量中的方法。
我试过了:
<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"}
没有其他通过。
答案 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)
删除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
}
也适合你。
答案 2 :(得分:1)
您可以按object[key] = value
或object.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)