Jquery :输入选择器找不到表单的任何内容

Jquery :输入选择器找不到表单的任何内容,jquery,forms,input,selector,Jquery,Forms,Input,Selector,我有一个img,当点击时,它指向一个使用自定义属性的表单,然后该表单通过.post提交它的隐藏输入 代码如下: $("img.imgsubmit").live('click',function(){ var msg = $(this).attr('title'); var r=confirm(msg+'?'); if (r==false){return false;} var form = '#'+$(this).attr('imgsubmit'); va

我有一个img,当点击时,它指向一个使用自定义属性的表单,然后该表单通过.post提交它的隐藏输入

代码如下:

$("img.imgsubmit").live('click',function(){
    var msg = $(this).attr('title');
    var r=confirm(msg+'?');
    if (r==false){return false;}
    var form = '#'+$(this).attr('imgsubmit');
    var url = $(form).attr('action');
    var output = OutputName($(form).attr('output'));
    $("#"+output).html('<img src="images/ajax-loader.gif" alt="Working..." />');
    // get post values
    var data = {}; // define data object
    $(':input',this).each(function(index){
            alert(this); // NEVER HAPPENS
            var key = $(this).attr('name');
            var val = $(this).val();
            data[key] = val;
    });
    // post
    $.post(url,data, function(html) {
            $("#"+output).html(html).slideFadeShow("fast");
    });
    return false;
});
我试过了第一行的各种方法:

$(':input',$(form)).each(function(index){

$(':input',form).each(function(index){

$(form+' :input').each(function(index){
没有一个能让它发挥作用。基本上,在表单元素中选择隐藏的输入根本不适用于对象


tl;dr一切正常,除了:输入选择器在访问表单变量时不工作。

只是在黑暗中摸索,看不到您的标记,但是$(“表单:输入”)应该可以工作


请注意,所有内容都在引号中

建议在
过滤器中使用
:input
,以获得最佳性能。出于这个原因,您可以尝试
$(“form*”).filter(“:input”)
。我以前没有读过这个,谢谢kojiro的提示。(投票结果向上)编辑:根据kojiro的建议删除了第二个建议,这也是因为我能够测试我提出的第一个建议并且它有效。我想问题可能在这里:var form='#'+$(this.attr('imgsubmit');您确定表单变量实际上正在捕获表单吗。尝试为表单提供一个id,并使用如下内容:var form=$('form#myFormId');
$(':input',$(form)).each(function(index){

$(':input',form).each(function(index){

$(form+' :input').each(function(index){