首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相依域yii2

相依域yii2
EN

Stack Overflow用户
提问于 2015-12-03 16:23:34
回答 1查看 1.8K关注 0票数 2

我需要框架Yii2示例中的两个依赖字段:

我希望当我插入"Numero“=5或其他数字值时,自动地”yii2 de Agua"= 2* "Numero“= 10。我看到了onchange yii2,但我不知道如何使用它,我认为onchange yii2是另一种选择。

代码语言:javascript
复制
<?= $form->field($model, 'NUM_PERSONAS')->textInput(['maxlength' => true]) ?>

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

更新:

以两个计算字段为例:

代码语言:javascript
复制
$("#consumo-form #{$aguaId},#consumo-form #{$personaId}").on("keyup", function (e) {
        var persona = $("#consumo-form #{$personaId}").val();
        var agua = $("#consumo-form #{$aguaId}").val();
        $("#consumo-form #{$indConsumoAguaM}").val(persona*agua)
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-03 19:18:02

下面是我要使用的方法:

视图中,

代码语言:javascript
复制
<?php
    $personaId = Html::getInputId($model, 'NUM_PERSONAS');
    $aguaId = Html::getInputId($model, 'AGUA_CONSUMO');
?>

    <!-- Begin of form -->
    <?= $form->field($model, 'NUM_PERSONAS')->textInput(['maxlength' => true]) ?>

    <?= $form->field($model, 'AGUA_CONSUMO')->textInput(['maxlength' => true]) ?>
    <!-- End of form -->

<?php
$js = <<<JS
$("#my-form-id #{$personaId}").on("keyup", function (e) {
    var persona = $(this).val();
    $("#my-form-id #{$aguaId}").val(persona*2)
});
$("#my-form-id #{$aguaId}").on("keyup", function (e) {
    var agua = $(this).val()%2 == 0 ? $(this).val() : $(this).val() - 1;
    $("#my-form-id #{$personaId}").val(agua/2)
});
JS;
$this->registerJs($js);

这样,两个字段都将尝试在另一个被更改后自动完成。但是,为了安全起见,我们还需要对模型的规则添加一个验证。

Model

代码语言:javascript
复制
public function rules()
{
    return [
        // Your rules 
        [['NUM_PERSONAS', 'AGUA_CONSUMO'], 'checkValues']
    ];
}

public function checkValues($attribute)
{
    $persona = $this->NUM_PERSONAS;
    $agua = $this->AGUA_CONSUMO%2 == 0 ? $this->AGUA_CONSUMO : $this->AGUA_CONSUMO - 1;
    if ($persona != $agua/2) {
        $this->addError($attribute, 'Error message');
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34071111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档