:输入选择器没有找到表单的任何内容

时间:2011-10-29 23:52:11

标签: 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');
    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){
        alert(this); // NEVER HAPPENS, so it's never finding all the inputs
        var key = $(this).attr('name');
        var val = $(this).val();
        data[key] = val;
});

我在第一行尝试了各种各样的事情:

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

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

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

没有一个能让它发挥作用。基本上,它根本不使用对象来选择表单元素中的隐藏输入。

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

1 个答案:

答案 0 :(得分:0)

只是在没有看到你的标记的情况下在黑暗中刺伤但是$(“形式:输入”)应该有效。

请注意,它全部用引号