带有document.getElementById()的JSON

时间:2016-01-06 18:23:42

标签: javascript json

我对这个json有点困惑。我可以在没有document.getElementById(" anID")的情况下手动输入json;它工作正常。我不断得到未终止的字符串文字。有人能告诉我组合[multiple] document.getElementById()和通过json发送它们的正确方法吗?

var form = '{"first_name":"'+document.getElementById("first_name").value+'",
             "last_name":"'+document.getElementById("last_name").value+'"}';

var form = JSON.parse(form);       
    alert(form['first_name']);
    alert(form.last_name);

2 个答案:

答案 0 :(得分:2)

这很有效。我认为这是你想要弄清楚的:

var form = {"first_name":document.getElementById("first_name").value,
                 "last_name":document.getElementById("last_name").value};

console.log(form.first_name);
console.log(JSON.stringify(form));

我想到这可能是你真正想要的。你需要清理你的报价,然后使用一点eval():

var form = {"first_name":"document.getElementById('first_name').value",
             "last_name":"document.getElementById('last_name').value"};

var runThatFunction = eval(form.first_name);    
console.log(runThatFunction);

答案 1 :(得分:2)

您可以像这样构建一个Javascript对象 -

var show = function() {
  var form2 = {};
  form2.first_name = document.getElementById("first_name").value;
  form2.last_name = document.getElementById("last_name").value;

  alert(form2['first_name']);
  alert(form2.last_name);
};
<input type="text" id="first_name" value="Eric" />
<input type="text" id="last_name" value="Johnson" />
<a href="#" onclick="show()">Click me!</a>