dongyuan2388
2016-03-04 12:53
浏览 85
已采纳

Yii2输入字段集禁用依赖于其他字段

I have, a create form, where i ask two things. The first is a user_id the other is a name.

I want to achieve that, if the first is set then the other field will be disabled. And if because there i want to save that specific user's name. I tried it with javascript, but im so noob with js, thats why ask to you.

My codes is that:

    $script = <<<JS
        $('#contact-user_id').on('afterValidate', function (e) {
            if ( $('#contact-user_id').value.length > 0 ) {
                return document.getElementById("contact-name").disabled = true;
            }
        });
    JS;
    $this->registerJs($script);
    ?>


        <div class="row">
            <div class="col-md-6">
                <?= $form->field($model, 'user_id')->widget(Select2::className(), [
                    'value' => $model->user_id,
                    'data'=>ArrayHelper::map(User::find()->all(), 'user_id', 'name'),
                    'options'=>['placeholder'=>'Select User...'],
                    'pluginOptions' => [
                        'allowClear' => true
                    ],
                ]) ?>

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

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

图片转代码服务由CSDN问答提供 功能建议

我有一个创建表单,我问两件事。 第一个是user_id,另一个是名字 。

我想实现这一点,如果第一个被设置,那么另一个字段将被禁用。 如果因为我想要保存该特定用户的名字。 我试过它 javascript,但是我跟你一起使用js,这就是为什么要求你。

我的代码是:

  $ script =&lt;  &lt;&lt; JS 
 $('#contact-user_id')。on('afterValidate',function(e){
 if($('#contact-user_id')。value.length&gt; 0){  
返回document.getElementById(“contact-name”)。disabled = true; 
} 
}); 
 JS; 
 $ this-&gt; registerJs($ script); 
?&gt; 
  
 
&lt; div class =“row”&gt; 
&lt; div class =“col-md-6”&gt; 
&lt;?= $ form-&gt; field($ model,'user_id')  - &gt;小部件(Select2 :: className(),[
'value'=&gt; $ model-&gt; user_id,
'data'=  &gt; ArrayHelper :: map(User :: find() - &gt; all(),'user_id','name'),
'options'=&gt; ['placeholder'=&gt;'选择用户...  '],
'pluginOptions'=&gt;  [
'allowClear'=&gt;  true 
],
])?&gt; 
 
&lt;?= $ form-&gt; field($ model,'name') - &gt; textInput(['maxlength'=&gt; true])?  &gt; 
 
&lt;?= $ form-&gt;字段($ model,'email') - &gt; textInput(['maxlength'=&gt; true])?&gt; 
 ... 
 <  / code>  
 
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongzongzhi6953 2016-03-04 13:10
    已采纳

    First of all, add the script at the bottom of your view or add it into the $(document).ready();

    Now, the code to change the name field depending upon user_id field.

    $('#contact-user_id').change(function(){
        if ($(this).val() != 0 || $(this).val() != '') {
           $('#contact-name').attr('disabled',true);
        }
    });
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题