繁体   English   中英

Yii2:编写表单动作的正确方法

[英]Yii2: Proper way of writting the form's action

我已经写了 YII2 的表单标签,具体为

<?php $form = ActiveForm::begin(['id' => 'builder/saveform','options' => ['method' => 'post']]) ?>

但是当我运行这个时,我的外部 javascript 捕捉到一个错误显示

Error: Syntax error, unrecognized expression: #builder/saveform

什么是错误

要更改默认操作,请将其添加为此格式的第一个参数['<controller>/<action>']

<?php $form = ActiveForm::begin(['action' => ['builder/saveform'],'options' => ['method' => 'post']]) ?>

Yii2 指南中的示例

另外,请记住该方法默认为 post,因此无需指定。

 $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data'], 'action' => Yii::$app->urlManager->createUrl(['site/signup'])]);

您还可以将此代码段用于自定义表单操作和其他属性。 createUrl 方法不会影响您的 url 模式。

现在我写了下面的代码

<?php $form = ActiveForm::begin(['action' => 'index.php?r=builder/saveform','options' => ['method' => 'post']]) ?>

它正在工作,但它是正确的写作方式吗???

我能够通过将操作添加到选项中来做到这一点

<?php $form = ActiveForm::begin(['id' => 'contact-form', 'options' => ['method' => 'post', 'action' => 'site/add']]); ?>

对于 Yii2

$form = ActiveForm::begin([
                            'id'      => 'login-form',
                            'options'=>['autocomplete'=>'off','method' => 'post', ],
                            'action' => '/frontend/web/user-management/auth/login',
                            'validateOnBlur'=>false,
                            'fieldConfig' => [
                                    'template'=>"{input}\n{error}",
                            ],
                                        ]);

由于仍然没有被接受的答案,您的问题的确切答案是错误:“无法识别的表达式:'#builder/saveform'”。 您将表单的 'id' HTML 标记分配了一个值 'builder/saveform',其中包含“/” - 根据HTML4 规范是非法字符。 我想 Yii 有一个“验证”,导致你的错误。

现在,我相信您正在尝试为表单提交指定相对 URL。 为此,请参阅 Michael St Clair 的回答。

ActiveForm::begin(['action' => 'news/subscriber','options' => ['method' => 'post','action'=>'news/sunscribers']]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM