将jQuery输入包含在表单帖子中
Include jQuery input with form post?
我在表单中有一个字段供用户输入地址。在他们输入地址后,它将与jQuery.ajax一起发送到远程API进行验证并解析为各个字段。结果是一个jsonp对象,我对它进行操作以提取我需要的字段。
我的目标是将地址包含在多个部分中,这样它就可以与表单中的其他字段一起处理。到目前为止,我唯一能想到的方法就是添加用正确值填充的隐藏字段。这感觉有点笨重,所以我想知道是否有更好的方法
目前,用户在一行中输入地址,类似于以下内容:
<form method="POST" id="myForm">
<input type="text" id ="address>
<div class="recipients"></div>
<input type="submit">
</form>
ajax在它们聚焦到地址字段之外时被触发,在成功返回jsonp对象时,提取必要的字段,然后插入到表单中:
success: function(data) {
var results = data.results[0];
var address1 = results.Address1;
var address2 = results.Address2;
var city = results.Locality;
var state = results.AdministrativeArea;
var zip = results.PostalCode;
var addLines = "<input type='hidden' name='address1' value='"+address1+"'>";
addLines += "<input type='hidden' name='address2' value='"+address2+"'>";
addLines += "<input type='hidden' name='state' value='"+state+"'>";
addLines += "<input type='hidden' name='city' value='"+city+"'>";
addLines += "<input type='hidden' name='zip' value='"+zip+"'>";
$(".recipients").append($(addLines));
}
有没有一种更优雅的方法可以将返回的数据包含到POST中?谢谢你的帮助!
首先,注意不要让那些隐藏字段与当前代码重复。如果在focusout
上的每一次成功的AJAX调用中都调用了这个,那么如果用户切换几次焦点,你可能会得到很多这样的调用。
也就是说,如果你想像现在这样坚持在一个单独的调用中将所有干净的数据发送到API,我认为你采取了正确的方法。由于上述原因,您应该只在静态html中包含隐藏字段,而不是在AJAX响应中创建新字段。现在,您可以在AJAX响应上更新那些input
的值。快速示例:
var addLines = "<input type='hidden' name='address1' value='"+address1+"'>"
成为
$('#address1').val(address1); // assume id is 'address1'
如果你仍然不喜欢这种感觉,你可以将实际值保存在JS变量中,并再次使用jQuery自己进行POST。拦截表单提交,取消它,并使用您在表单中保留的变量和其他字段创建自己的POST。这实际上更麻烦和更混乱,因为您需要确保您的代码现在包括表单中的所有相关值,并在添加新字段时继续这样做。
我想我更喜欢隐藏输入字段的方法,只是"更漂亮"的更新。
为什么收件人div中没有它们,因为它们已经隐藏
<div class="recipients">
<input type='hidden' name='address1' value="" id="address1">
<input type='hidden' name='address2' value="" id="address2">
....
</div>
然后使用jquery像一样更新它们
success: function(data) {
var results = data.results[0];
var address1 = results.Address1;
var address2 = results.Address2;
$('#address1').val(address1);
$('#address2').val(address2);
.....
- jQuery表单添加不适用于下拉列表
- 同时打印并提交表单-jQuery.Print
- 如何不清除表单jQuery中禁用的输入
- 如何检查输入中的值以及值是否存在提交表单?jquery.
- 登录表单 jQuery 插件无法按预期工作
- 谷歌电子表格网站表单jQuery脚本阻止发送
- 如何做不成功提交表单jquery
- 将表单和输入附加到表单jQuery Mobile
- 在我的切换表单jquery脚本中出现问题
- 使用动态表单 jquery 创建多维数组
- 使用一个类提交多个表单(jquery, rails)
- 有一个按钮打开右边的表单JQuery
- 取消按钮php表单jquery
- 按钮必须按一个特定的顺序发送表单- jquery
- 产品验证表单jquery
- rails嵌套表单jquery图像预览
- 获取表单(Jquery与Javascript)
- 将类型文件的输入附加到表单jquery中
- 如何从理想表单jQuery中删除验证规则
- Ruby on rails -加载更多按钮与kaminari和搜索表单.Jquery的问题