jQuery表单插件:发布动态字段

jQuery表单插件:发布动态字段,jquery,forms,plugins,Jquery,Forms,Plugins,我正在使用提交(发布)网络表单 如果我把控件放在表单上,一切都会很好 当我使用jQuery(文本或隐藏)添加(附加)动态字段时,似乎无法发送我的字段 是否有人遇到过同样的问题?您可以尝试在表单提交中附加插件: <script type="text/javascript"> $("#submit").click(function() { // bind 'myForm' and provide a simple callback function

我正在使用提交(发布)网络表单

如果我把控件放在表单上,一切都会很好

当我使用jQuery(文本或隐藏)添加(附加)动态字段时,似乎无法发送我的字段


是否有人遇到过同样的问题?

您可以尝试在表单提交中附加插件:

<script type="text/javascript"> 
    $("#submit").click(function() { 
        // bind 'myForm' and provide a simple callback function 
        $('#myForm').ajaxForm(function() { 
            alert("Thank you for your comment!"); 
        }); 
        return false;
    }); 
</script> 

$(“#提交”)。单击(函数(){
//绑定“myForm”并提供一个简单的回调函数
$('#myForm').ajaxForm(函数(){
警惕(“谢谢你的评论!”);
}); 
返回false;
}); 

如何添加动态字段?我做了同样的事情,添加了隐藏的输入元素,它可以很好地上传它们

更具体地说,我也在使用jQuery,所以我很好奇您在使用jQuery中的哪些功能时遇到了问题


话虽如此,您将不得不提供更多关于您的问题的信息,因为有许多行之有效的方法可以成功地完成您正试图做的事情。

我不会这样做,因为我可以看到各种浏览器在将来禁用此功能,然后您就遇到麻烦了

为什么不从一开始就有一个隐藏字段,并将所有变量和值以某种查询字符串格式(如
“=&=&…”)放入其中呢

它快速、简单,并且不依赖于在页面加载后呈现HTML表单控件


编辑:根据下面的大量评论。有些人可能不认为这是“自然的”,但这是可靠的。由于我们正在处理客户端脚本,这是一个臭名昭著的跨浏览器行为不一致的问题,就我个人而言,我会选择我知道有效的方法。我不希望每个人都喜欢我的方式,但我坚持认为这是一个不错的选择,至少应该考虑到它的优点。

我的应用程序中动态添加字段没有问题

确保新字段仍在
中。确保您的标记结构有效且平衡。将
表单
打开和关闭放在块元素之外,例如
div
table
,以确保新添加的字段不在
表单
标记之外


Firebug将是您最好的朋友,用它来检查添加的字段和表单插件发送的AJAX请求。

我要感谢大家的帮助

我使用jQuery 1.4.1将元素附加到UL:

var file = "";
FilesToUpload++;
$("#UploadedFilesList")
    .show()
    .append("<li class='element001'><p>" + file + "</p><span class='element002'>x</span><input type='hidden' value='1' id='Attachment_" + FilesToUpload + "' /></li>");
所有asp.net web控件都已正确发布;问题在于动态场
我将尝试构建一个示例项目,看看是否存在相同的问题。 我尝试了不同的浏览器,结果是一样的

谢谢


阿尔贝托

@Spencer Ruport:我不同意。如果发生这种情况,您将不得不通过javascript禁用programattic对输入元素的访问。因此,它也会禁用您的方法。@casper-这是一种很好的方法,不依赖于动态控件生成,无论您使用何种语言或技术,动态控件生成都是有问题的。不要因为你喜欢你的答案就投我的反对票。@Spencer Ruport:我投了你的反对票,因为我认为它是错误的,甚至解释了原因,这比大多数人在堆栈溢出时给你的要多得多。你不应该假设(你知道他们是怎么说的)。你认为浏览器将来会发生的事情的安全解决方案(现在不是这样,因此你的答案更不可信)会使你的回答无效,即使将来会发生这种情况。下次,看看你的答案,了解为什么会投反对票,特别是如果有人对为什么投反对票给出了客观的看法。@Spencer Ruport:另外,你现在的反应表明你是那个将我的答案投反对票作为报复的人。考虑到我上面的陈述和你不正确的假设,我说“你真丢脸”,并建议你在将来采取这种公然的行动之前好好想想。@Spencer Ruport:此外,这不是一个好方法,因为提出问题的人显然需要在客户端动态添加值。您的方法并没有阻止客户端对Javascript访问的需要,如果您预测的安全措施能够实现,这将是无效的。@vandalo:显示您在发布时或之前正在使用的代码,这些代码正在向服务器添加发布的值。可能重复:@Mike,你确定你是这样写代码的吗?你有没有看到这个页面()解释了
ajaxForm()
ajaxSubmit()
方法之间的区别?@Donny谢谢你的链接。我不熟悉这个插件,只是提供了一个快速的解决方案。如果您想获得更多的声誉,请回答您熟悉的问题。你很快就会获得更多的代表。我在我的应用程序中发现了问题。我忘了为隐藏字段添加属性“name”(我只使用了Id)。我认为这是没有必要的,但似乎不是那样的。阿尔贝托
$('#aspnetForm').submit(function()      {
     $(this).ajaxSubmit(options);
     return (false);
});