【问题标题】:Update hidden field using Autocomplete in Yii2在 Yii2 中使用自动完成更新隐藏字段
【发布时间】:2014-06-09 06:00:51
【问题描述】:

我正在开发一个自动完成小部件。到目前为止,这是我的代码。

我的看法:

    <?php
    $data = Company::find()
    ->select(['name as value', 'name as  label','c_id as id'])
    ->asArray()
    ->all();

    echo AutoComplete::widget([
    'name' => 'Company',
    'id' => 'ddd',
    'clientOptions' => [
    'source' => $data,
    'autoFill'=>true,
    'minLength'=>'4',
    'select' => new JsExpression("function( event, ui ) {
            console.log(ui);
            $('#user-company').val(ui.item.id);
     }")],
     ]);
     ?>

    <?= Html::activeHiddenInput($model, 'company')?>

选择选项时,自动完成选项正在更新我的文本字段,但不会更新隐藏字段。

如何在选择选项时更新隐藏字段?

【问题讨论】:

    标签: php yii2


    【解决方案1】:

    您可以使用这些属性:

    • labels - 显示在下拉列表中,
    • value - 选择后跳转到输入字段,
    • id - 隐藏字段使用的附加参数。

    例如:

    <input type="hidden" id="user_company" name="user_company" value="qwe">
    <?php
    
      use yii\web\JsExpression;
    
      echo AutoComplete::widget([
        'name' => 'company',
        'id' => 'ddd',
        'clientOptions' => [
          'source' => [
              ['label'=>'color1', 'value'=>'key1', 'id'=>'c_id1'],
              ['label'=>'color2', 'value'=>'key2', 'id'=>'c_id2']
          ],
          'autoFill'=>true,
          'minLength'=>'0',
          'select' => new JsExpression("function( event, ui ) {
            console.log(ui);
            $('#user_company').val(ui.item.id);
          }")
    
    
        ],
    
      ]);?>
    

    【讨论】:

    • 这成功了! 'select' =&gt; new JsExpression("function( event, ui ) { console.log(ui); $('#user_company').val(ui.item.id); }")
    • 已编辑。在你的 $('#user_company').val(ui.item.id).change();最后不需要 .change()
    • 别忘了删除console.log(ui); =) 用于调试目的。
    • 这对我有用。我正在通过“源”中的数据库表加载值。
    猜你喜欢
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多