: селектор ввода не находит ничего для формы - PullRequest
0 голосов
/ 30 октября 2011

У меня есть изображение, которое при нажатии указывает на форму с помощью пользовательского атрибута, и эта форма затем отправляет свои скрытые данные через .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 голосов
/ 30 октября 2011

Просто удар в темноте, не видя вашей разметки, но $ ("form: input") должно работать.

обратите внимание, что все это в кавычках

...