Как выбрать радио, а затем отправить форму с помощью jQuery в vBulletin?

Я работаю над пользовательским скриптом, который вводит в голову мой собственный JS (эта часть работает). Я использую уже существующий на сайте jQuery.

Я модератор форума vBulletin. Я перемещаю и закрываю МНОГО тем. Я подумал, что это сэкономит мне непреодолимое количество времени, если я уменьшу общее количество кликов, которые я делаю, на 2 клика на поток.

Используя .append(), я добавил свой собственный <td> с тегом "быстрого доступа" <a>.
Я хотел бы, чтобы при нажатии на тег <a> ("Закрыть" или "Переместить") он выбирал соответствующий параметр в форме инструментов потока. (который, насколько я могу судить, работает так, как я его закодировал), а затем отправьте форму, как если бы я нажал кнопку «Выполнить действия».

Мой текущий код:

$(document).ready( function() {

    var topbar = $('#threadtools').closest('tr');
    var newTool = '<td><a href="#" id="newClose" style="padding-left: 10px; padding-right: 10px;"><b>Close</b></a></td>' +
                    '<td><a href="http://google.com" id="newMove"><b>Move</b></a></td>'; // Google for testing purposes I wanted to make sure preventDefault was working
    topbar.append(newTool);

    $('#newClose').click(function() { 
        alert();
    });
    $('#newMove').click(function(event) { 
        event.preventDefault();
        //var form = $('input[name$="threadadminform"]');  // select form by name
        var button = $('input[value="Perform Action"]');   // select button by name


        var closeradio = $('#ao_oct');
        var moveradio = $('#ao_mvt');
        var copyradio = $('#ao_cpt');
        var editradio = $('#ao_edt');
        var deleteradio = $('#ao_dlt');
        var stickradio = $('#ao_sut');
        var mergeradio = $('#ao_mgt');
        var redirectradio = $('#ao_rrd');

        closeradio.removeAttr('checked');
        copyradio.removeAttr('checked');
        editradio.removeAttr('checked');
        deleteradio.removeAttr('checked');
        stickradio.removeAttr('checked');
        mergeradio.removeAttr('checked');
        redirectradio.removeAttr('checked');

        moveradio.attr('checked', 'checked');
        button.trigger();
    });
});

Как видите, сейчас я пытаюсь .trigger() нажать кнопку отправки, это не работает.
Я также пробовал .submit() в форме var, объявленной вверху, это тоже не работает.

Как я могу заставить это отправить, как если бы я нажал кнопку и перешел на следующую подходящую страницу?


person Aaron Henderson    schedule 16.11.2011    source источник
comment
.submit должен был бы, вы уверены, что используете его в форме?   -  person Adam Merrifield    schedule 16.11.2011


Ответы (1)


триггеру требуется минимум события, поэтому вам нужно передать button.trigger('click'), чтобы он мог выполнить событие щелчка.

Пример демонстрации того, чего вы пытаетесь достичь, - в, взгляните на пример с двумя кнопками выше. расположение.

надеюсь это поможет.

person mprabhat    schedule 16.11.2011
comment
Такая маленькая оплошность. Я ЛЮБЛЮ ВАС! - person Aaron Henderson; 16.11.2011