2013-08-03 117 views
0

我使用jQuery FormBuilder Plugin在我的应用程序中生成表单生成器。如何验证ajax表单?

问题是我有另外两个输入字段需要与此一起提交。

我的表格结构如下:

<script> 
    $(function() { 
     $('#my-form-builder').formbuilder({ 
      'save_url' : 'examplesave', 
      'load_url' : 'examplejson', 
      'useJson' : true 
     }); 
    }); 
</script> 

<form id="myForm"> 
    <input type="text" id="fname" /> 
    <input type="text" id="lname" /> 
    <div id="my-form-builder"></div> 
</form> 

我编辑的jquery.formbuilder.js文件追加其他两个输入字段:

// saves the serialized data to the server 
      var save = function() { 
        var fname= $('#fname').val(); 
        var lname= $('#lname').val(); 

        if (opts.save_url) { 
         $.ajax({ 
          type: "POST", 
          url: opts.save_url, 
          data: $(ul_obj).serializeFormList({ 
           prepend: opts.serialize_prefix 
          }) + "&form_id=" + form_db_id + "&fname=" +fname + "&lname=" +lname, 
          success: function() {} 
         }); 
        } 
       }; 

到目前为止,一切都很好。这工作非常好。 问题是我想使用jquery Validate plugin在提交之前验证输入字段。 现在我可以在(document).ready上使用jQuery Form plugin验证字段。喜欢的东西:

$('#myForm').ajaxForm(
       { 
        type: "POST", 
        url: "examplesave", 
        data: ????????????????????????????????? 
        beforeSubmit : function() { 
         $("#myForm").validate({ 
          rules : { 
           fname : { 
            required : true 
           }, 
           lname : { 
            required : true 
           } 
          }, 
          messages : { 
           fname : "Please enter...", 
           lname : "Please enter..." 
          } 
         }); 
         return $("#myForm").valid(); 
        }, 
        success : function() {} 
       }); 

但我怎么获取数据

data: $(ul_obj).serializeFormList({ 
            prepend: opts.serialize_prefix 
           }) + "&form_id=" + form_db_id + "&fname=" +fname + "&lname=" +lname 

一部分?它只是提交表单,因为它是& jQuery formbuilder无法将输入序列化到一起。我如何在这里使用序列化插件? 我真的很不好。我不擅长JavaScript。

有人可以指导我。如果不清楚,我可以添加更多细节。我绞尽脑汁。还有其他方法吗?请建议。

回答

0

尝试使用序列化()函数

... 
    data:$("#myForm").serialize(); 

这个连载你从要素

+0

好吧,我想你让我错了。我想要一种获取数据的方法:在数据中使用$(ul_obj).serializeFormList({prepend:opts.serialize_prefix })+“&form_id =”+ form_db_id +“&fname =”+ fname +“&lname =”+ lname部分。有一个插件函数可以用它自己的方式序列化它。如何获得该部分? – LittleLebowski