- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题说明了一切,我昨天问过 How to add fields to activeform with js/jQuery in Yii2?
现在我需要添加一个下拉菜单,这不是同一件事......
我有这个:
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\ArrayHelper;
use app\models\User;
use app\models\ContactType;
$cntcttp = new ContactType;
$this->registerJs('$("#btnadd").on("click",function(){'
. '$("#dynamicInput").append(\''
. Html::textInput("contacto","",['placeholder'=>"contacto"])
. '\');'
. '})');
?>
<?php $form = ActiveForm::begin(); ?>
<div id="dynamicInput"></div>
<?= Html::activeDropDownList($cntcttp, 'ContactTypeID',
ArrayHelper::map($ctypes, 'ContactTypeID', 'Name') , ['prompt'=>'--contacto--']) ?>
<input type='button' id='btnadd' value="add contact">
<div class="form-group">
<?= Html::submitInput('Submit', ['class' => 'btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
现在我需要在用户单击 #btnadd 时显示 dorpdown,而不是我现在的内容:P
提前谢谢您:)
最佳答案
这几乎是同一件事。只需像下面这样做:
$this->registerJs('$("#btnadd").on("click",function(){'
. '$("#dynamicInput").append(\''
. Html::activeDropDownList($cntcttp, 'ContactTypeID',
ArrayHelper::map($ctypes, 'ContactTypeID', 'Name') , ['prompt'=>'--contacto--'])
. '\');'
. '})');
仅此而已。
<小时/>您可能会在 javascript
中遇到语法错误,因为 Yii 将 \n
放入下拉列表中。避免语法错误的最肮脏方法是执行以下操作:
$this->registerJs('$("#btnadd").on("click",function(){'
. '$("#dynamicInput").append(\''
. str_replace("\n", "", Html::activeDropDownList($cntcttp, 'ContactTypeID',
ArrayHelper::map($ctypes, 'ContactTypeID', 'Name') , ['prompt'=>'--contacto--']))
. '\');'
. '})');
<小时/>
特别感谢 Soju 在评论中提到使用 json_encode()
但是,我写道,最肮脏的方法是使用 str_replace()
,但是,您可以使用 json_encode()
来代替,这是一个更优雅的解决方案:
$this->registerJs('$("#btnadd").on("click",function(){'
. '$("#dynamicInput").append('
. json_encode(Html::activeDropDownList($cntcttp, 'ContactTypeID',
ArrayHelper::map($ctypes, 'ContactTypeID', 'Name') , ['prompt'=>'--contacto--']))
. ');'
. '})');
关于php - 如何使用 jQuery 添加 activeDropDownList 到表单? PHP-Yii2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27553269/
我从一位老开发人员那里继承了一段代码,目前正在尝试找出它提交背后的方法。 我目前正在尝试快速修复隐藏其中一个字段以提交表单的地方,我遇到的问题是我似乎无法将下拉列表设置为默认值,应该是英国,数据库中的
我有以下事件下拉列表 findAll(), 'id', 'name'), array('class'=>'st-form', 'onchange' => 'getLocationByCity(this
问题说明了一切,我昨天问过 How to add fields to activeform with js/jQuery in Yii2? 现在我需要添加一个下拉菜单,这不是同一件事...... 我有
在 Yii2 中,使用 Html::activeDropDownList,我可以以如下形式提交数据: 'multiple', 'class' => 'multiselect', ]
我是一名优秀的程序员,十分优秀!