如何在ajax变量中存储表单数据?

时间:2015-02-24 11:05:46

标签: javascript jquery ajax twitter-bootstrap

我有一个带有一个文本字段的表单。此表单使用ajax提交。在提交时,我想将文本字段中的数据保存在一个ajax变量中。以下是我的代码。

<script>
 $(function() {
//twitter bootstrap script
 $("button#submit").click(function(){
         $.ajax({

     type: "POST",
 url: "PastSurgicalCustomItem",
 data: $('form.form-horizontal').serialize(),
         success: function(msg){

        var $data = $('form.form-horizontal').serialize();

         var $firstDiv = $('<div></div>');
         $firstDiv.attr("class","col-md-3");


         var $secondDiv = $('<div></div>');
         $secondDiv.attr("class","checkbox history_checkbox_div");
         $secondDiv.appendTo($firstDiv);

         var $label = $('<label></label>');
         $label.appendTo($secondDiv);

         var $checkBox = $('<input></input>');
         $checkBox.attr("type","checkbox");
         $checkBox.attr("class","history_checkbox");
         $checkBox.attr("id",msg);
         $checkBox.appendTo($label);

         var $span = $('<span></span>');
         $span.text($data);
         $span.appendTo($label);

         $firstDiv.appendTo($('#customDiv'));


         },
 error: function(){
 alert("failure");
 }
       });
 });
});
</script>

但这并没有奏效。如果我插入数据“test7”,那么$data变量将包含以下

textinput=&textarea=&customName=test7

如何正确地将文本框中的数据转换为ajax变量?有关更多信息,我的应用程序是使用bootstrap设计的。

3 个答案:

答案 0 :(得分:3)

然后你可以存储像这样的变量

var variable_name= $(this).find('textarea[name="your_textarea_name"]').text();

答案 1 :(得分:1)

以下是如何获取表单中各个字段的值:

$('form.form-horizontal').find(':input[name="customName"]').val();

答案 2 :(得分:1)

使用serializeArray()代替serialize()。

serialize()输出键/值字符串textinput=&textarea=&customName=test7

serializeArray()输出JSON:

[
  {
    name: "a",
    value: "1"
  },
  {
    name: "b",
    value: "2"
  },
  {
    name: "c",
    value: "3"
  },
  {
    name: "d",
    value: "4"
  },
  {
    name: "e",
    value: "5"
  }
]