2016-07-11 5 views
3

jsで使用するには、フィールドのIDを入力しようとしています。私はYii2のドキュメントを読んで、ActiveFieldに "getInputId"というメソッドがあることがわかりましたが、どのように呼び出すのですか?Yii2。フォームが入力IDを取得する

<?php $form = ActiveForm::begin(); ?> 
     <?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?> 
<?php $form->end(); ?> 

私はVARでます$ form->フィールドから結果を保存することができますが、それそのように使用することはできませんので、文字列です。

私はActiveFormコードをチェックしていますが、これはbeginFieldとendFieldという2つのメソッドが存在することがわかりました。任意のアイデアが評価されます。

答えて

2

は、デフォルトでは、彼のフィールドのidは、すなわち

<?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?> 

idはなり$model-$attributeすなわち

あるuser-username

フィールドにidを手動で指定することもできます。

<?= $form->field($model, 'username')->textInput(['maxlength' => true, 'id' => 'my_id']) ?> 

この場合には、入力のためのIDは、最新のコメントどおりmy_id

編集になります(私はこれを試してみましたが、ドキュメントごとに説明していない)

textInput関数であるとしてだから、getInputIdhttp://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#getInputId()-detail)$ thishttp://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#textInput()-detail

を返す

0123としてでき呼び出すする必要があります
<?php 
$form->field($model, 'username')->textInput(['maxlength' => true])->getInputId(); // this will not work 
?> 

が、これはそう

外のクラスを呼び出すことができなくなりますドキュメントごとに方法を保護されています
12

私は良い解決策を見つけました。 HtmlヘルパーからメソッドgetInputIdがあります。 私の元の質問はまだ保留中です。どのようにactiveFieldからメソッド "getInputId"を使用するのですか?フォームで提出Userモデルとusernameを使用している場合

<?= Html::getInputId($model, 'phone'); ?> 
関連する問題