如何获取键值对中输入的名称和值

时间:2015-05-26 04:48:08

标签: javascript jquery key-value

我想在按钮点击时将输入元素的名称和值存储在数据库中。所以我想把名称作为关键和价值作为价值。

    <form id="form">
      <input type="text" name="fname" value="a">
      <input type="text" name="lname" value="b">
      <input type="button" value="submit">
    </form>

我在点击按钮时使用此jquery代码来获取值。

    $('#form input').each(function(key, value) {
      alert(this.value);
    });

请帮助将名称和值作为键值对(json格式)。

3 个答案:

答案 0 :(得分:1)

试试这个:

var obj = {};
$('#new_user_form input, #new_user_form select').each(function(key, value) {
     obj[this.name] = this.value;
});

答案 1 :(得分:1)

    $('#form').submit(function(e) {
      e.preventDefault(); // prevent form from submission.
      var $form = $(this);
      var url = $form.attr("action");
      console.log(url);
      var data = $form.serializeArray(); // check out this console log everything is in key-value pair.
      console.log(data);
      var $divDisplay = $("#key-value-display");
      $divDisplay.html(data);


      $.ajax({
        url: url,
        data: data,

      }).done(function(response) {
        //work with response here.
      });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="form" action="url.php or asp.net whereever you are processing" method="post">
  <input type="text" name="fname" value="a">
  <input type="text" name="lname" value="b">
  <input type="submit" value="submit">
</form>
<div id="key-value-display"></div>

答案 2 :(得分:0)

如果您希望每个输入的单个JSON字符串使用JSON.sringify()和对象文字。

$('input[type="text"]').each(function () {
  var obj = {};
  obj[$(this).attr('name')] = $(this).val();
  alert(JSON.stringify(obj));
});
<form>
  <input type="text" name="fname" value="a">
  <input type="text" name="lname" value="b">
</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

或者,创建一个对象文字数组。

DEMO

var inputs = [];

$('input[type="text"]').each(function () {
  var obj = {};
  obj[$(this).attr('name')] = $(this).val();
  inputs.push(obj);
});

console.log(JSON.stringify(inputs));