我的表单可以包含不同数量的文本字段(保存翻译值)。他们的名字例如是:“textfield_eng”,“textfield_ger”,“textfield_dut”。
在我的ajax请求中,我当然希望提交这些字段,但我无法弄清楚如何将这些字段名称及其值填充到数据字符串中。
这就是数据调用的样子:
$.ajax({
type: "POST",
url: $("#optionForm").attr("action"),
dataType: "xml",
cache: false,
data: { formname: $("#optionForm input[name='formname']").val(),
submit: $("#optionForm input[name='submit']").val()
},
success: function(xml){
bladibla....
这就是我希望它:
$.ajax({
type: "POST",
url: $("#optionForm").attr("action"),
dataType: "xml",
cache: false,
data: { formname: $("#optionForm input[name='formname']").val(),
submit: $("#optionForm input[name='submit']").val(),
textfield_eng : "english",
textfield_ger : "german",
textfield_dut : "dutch"
},
success: function(xml){
bladiblla...
最好的方法是什么?
<input id="sOption_dut" name="sOption_dut" class="form_textfield" type="text" value="" />
<input id="sOption_eng" name="sOption_eng" class="form_textfield" type="text" value="" />
<input id="sOption_ger" name="sOption_ger" class="form_textfield" type="text" value="" />
答案 0 :(得分:2)
你签出了jQuery Form plugin吗?通过ajax提交表单变得更加容易。
答案 1 :(得分:2)
我自己想通了。检查了jquery文档并注意到您也可以将数据字符串作为数组提交(如上面的注释所述)。这让我以正确的方式思考。
这是怎么做的:
var aData = [];
$("input", $("#myForm")).each(function(){
aData.push({name: $(this).attr("name"), value: $(this).val()});
});
$.ajax({
type: "POST",
url: $("#myForm").attr("action"),
dataType: "xml",
cache: false,
data: aData,
success: function(xml){
blablabla...
所以,循环遍历表单输入字段(我只有文本字段,但如果你有无线电或选择,你需要稍微改变一下,在本网站的其他地方寻找有关如何循环字段的提示)然后构建数组。那么你唯一要做的就是在ajax请求中推送它。
毕竟这很简单......
答案 2 :(得分:0)
<强> 更新 强> 使用jquery创建新文本框的方法是
$('<input />').attr({
id: 'sOption_dut',
name: 'sOption_dut',
class: 'form_textfield' ,
type: 'text',
value: ''
}).appendTo('form_or_otherwise_selector_here');
以上显示了如何使用指定的属性创建输入字段,然后将其附加到其他元素(通常是表单)。
请记住,上面的代码应该在页面加载时执行,或者当您决定向最终用户显示表单时执行..它不应该放在ajax调用代码中,因为这意味着它将会在提交时生成,而不是给最终用户填写数据的机会..(除非这是预期的效果..)
改变了 form_or_otherwise_selector_here 来 告诉它放置输入框的位置
<小时/>
data: { formname: $("#optionForm input[name='formname']").val(),
submit: $("#optionForm input[name='submit']").val()
textfield_eng : "english",
textfield_ger : "german",
textfield_dut : "dutch",
}
你需要删除最后一个逗号(在荷兰文本之后),并在提交值之后添加一个。
所以它应该是
data: { formname: $("#optionForm input[name='formname']").val(),
submit: $("#optionForm input[name='submit']").val(),
textfield_eng : "english",
textfield_ger : "german",
textfield_dut : "dutch"
}
击> <击> 撞击>