2014-03-03 34 views
0

注意:我无法编辑除附加JS文件之外的任何内容。如何解析表单的输出?

我有一个HTML表单,看起来像这样:

<input type="text" name="name" /> 
<input type="text" name="last_name" /> 
<input type="text" name="mail" /> 
<select name="country"> 
    <option value="1">Country 1</option> 
    (...) 
</select> 

现在想象一下,用户填写的表格:

约翰| Doe | [email protected] |选择第57个国家

问题是,我的后端接受不同形式的数据(我无法改变这种情况)。它需要看起来更像这是为了工作:

<input type="text" name="site[name]" value="John" /> 
    <input type="text" name="site[last_name]" value="Doe" /> 
    <input type="text" name="site[country]" value="57" /> 
    (...) 

是否可以解析/动态修改表单的输出,所以我的后端是接受我养活呢?任何提示?我一直在寻找,但无法找到任何东西:)非常感谢。

+0

如何提交表格?你可以发布任何相关的JS? – Tomanow

回答

0

你可以用它来改变每个输入

$(document).ready(function(){ 
    $("form input[name=name]").attr("name", "site[name]"); 
    $("form input[name=last_name]").attr("last_name", "site[last_name]"); 
    $("form select[name=country]").attr("name", "site[country]"); 
}); 

或通用解决方案的名称属性

DEMO:http://jsfiddle.net/xbLH7/

$(document).ready(function(){ 
    $("form").children().each(function(){ 
     var currName = $(this).attr("name"); 
     if(currName != ""){ 
      $(this).attr("name", "site["+currName+"]"); 
     } 
    }); 
}); 
0

你可以重写所有name属性:

$(function() { 
    $("input[name]").attr(function(i, oldname) { 
     return 'site['+oldname+']'; 
    }); 
});