zoukankan      html  css  js  c++  java
  • Yii2 如何实现表单事件之 Ajax 提交

    前言

    Yii2 现在使用 JS 都必须要注册代码了。

    要实现 Ajax 提交,有两种方法。一是直接在 ActiveForm 调用 beforeSubmit 参数,但是个人认为这样没有很好的把 JS 和 HTML 分开,所以我们这篇文章主要介绍第二种方法 - 外部写 JS 方法。

    表单部分

    <?php $form = ActiveForm::begin([
        'id'     => $model->formName(),
        'action' => ['/apitools/default/index']
    ]); ?>

    Ajax

    <?php
    $js = <<<JS
    // get the form id and set the event
    $('form#{$model->formName()}').on('beforeSubmit', function(e) {
       var $form = $(this);
       // do whatever here, see the parameter $form? is a jQuery Element to your form
    }).on('submit', function(e){
        e.preventDefault();
    });
    JS;
    $this->registerJs($js);

    如果你使用了 JsBlock,你还可以这样写:

    <?php JsBlock::begin() ?>
        <script>
            $(function () {
                jQuery('form#apitool').on('beforeSubmit', function (e) {
                    var $form = $(this);
                    $.ajax({
                        url: $form.attr('action'),
                        type: 'post',
                        data: $form.serialize(),
                        success: function (data) {
                            // do something
                        }
                    });
                }).on('submit', function (e) {
                    e.preventDefault();
                });
        </script>
    <?php JsBlock::end() ?>

    参考:http://www.ramirezcobos.com/2014/09/12/how-to-implement-form-events-on-yii2/

    来源地址:http://www.getyii.com/topic/13

  • 相关阅读:
    Markdown常用写法
    Vue.js学习篇
    ClassLoader
    Java内存篇
    Spring-AOP学习篇
    M3U8Downloader
    IngCrawler
    ulimit开启coredump时核心转储
    Linux下的bc计算器
    Maven相关介绍
  • 原文地址:https://www.cnblogs.com/yhdsir/p/5181707.html
Copyright © 2011-2022 走看看