在li元素上提交活动表单单击Yii2

时间:2017-08-08 08:30:05

标签: php jquery forms yii2

我有一个ActiveForm,我试图通过点击其中一个li元素来提交它。尝试使用javascript,但我得到的是form is not defined

目的是通过$_GET发送信件并在控制器中进行搜索,以查找数据库表中以所点击的字母开头的所有结果。

这是我的表格:

<?php $form = \yii\bootstrap\ActiveForm::begin([
                            'id' => 'charsForm',
                            'action' => '#',
                            'method' => 'get',
                            'options' => ['data-pjax' => true, 'onsubmit' => 'return pjaxFilterLetters();', 'id' => 'filter-group2'],
                        ]) ?>
                        <div class="authors-filter">
                            <ul class="letters">
                            <?php foreach ($array_in_use as $char){
                                echo '<li onclick="form.submit()">' . $char . '</li>';
                            } ?>
                            </ul>
                        </div>
                        <?php \yii\bootstrap\ActiveForm::end(); ?>

$array_in_use只是一个包含所有字母的数组。 还有一些jQuery:

$(function(){
    var letters = $('.letter').find('li');
    var form = $("#charsForm");
    letters.on('click', function () {
        $(this).addClass('selected');
    });
});

我在这里声明变量form,但猜猜这不是正确的方法。

我应该如何提交表格?

2 个答案:

答案 0 :(得分:2)

将您的点击事件更改为:

 var letters = $('.letters').find('li');
 var form = $("#charsForm");
 letters.on('click', function () {
        $(this).addClass('selected');//this will disappear when the page is refreshed after the submit 
        form.submit();
    });

删除onclick属性

答案 1 :(得分:1)

在类定义(字母&lt; - &gt;字母)中似乎是一个拼写错误:<ul class="letters">&lt; - &gt; var letters = $('.letter').find('li');

更改

echo '<li onclick="form.submit()">' . $char . '</li>';

echo '<li>' . $char . '</li>';

然后在javascript中提交表单,点击li元素。

$(function(){
    var letters = $('.letters').find('li');
    var form = $("#charsForm");
    letters.on('click', function () {
        $(this).addClass('selected');
        form.submit();
    });
});