如何在依赖于另一个字段的文本框上绑定动态屏蔽格式
How to bind Dynamic masking format on textbox which depend on another field
我正在使用 yii2 高级应用程序。现在我有一个下拉菜单和一个文本框。下拉值是 Driving Licence
和另一个 Pan No.
当用户 select Driving Licence
时,屏蔽格式为 9999 9999999999
,Pan No.
为 99-9999-9999
。
我的_form.php
<div class="form-group" id="div_document">
<?= $form->field($orderMasterModel, 'document')->dropDownList(['Driving Licence' => 'Driving Licence', 'Pan Card' => 'Pan Card'], ['placeholder' => 'Document']) ?>
</div>
<div class="form-group" id="div_document_no">
<?= $form->field($orderMasterModel, 'pan_no')->widget(\yii\widgets\MaskedInput::className(), [
'mask' => '999-999-9999',
]) ?>
</div>
现在我不知道如何制作文本框的依赖掩码格式。请帮忙。
我认为如果没有任何类型的 AJAX 就无法做到这一点,PHP 在执行时在服务器中运行,因此如果没有其他编程就无法有条件地更改掩码。
在这里我找到了解决办法。使用 Php 无法提供动态掩码。所以我使用 javascript.
先把'data-plugin-inputmask'=>"inputmask_b1ea8b87"
放在需要遮罩的地方
<div class="col-md-6">
<div class="form-group" id="div_document_no" style="display: none">
<?= $form->field($orderMasterModel, 'pan_no')->textInput(['placeholder' => 'Document No','data-plugin-inputmask'=>"inputmask_b1ea8b87"]) ?>
</div>
在查看页面绑定jquery.inputmask.bundle.js。
list(,$mask)=Yii::$app->assetManager->publish('@bower/jquery.inputmask/dist/jquery.inputmask.bundle.js');
$this->registerJsFile($mask,['position' =>View::POS_END]);
在javascript.
$('#ordermaster-document').on('change', function() {
if(this.value=='Pan Card')
{
var inputmask_b1ea8b87 = {"mask":"a{5}9999A{1}"};
}else{
var inputmask_b1ea8b87 = {"mask":"a{2}99 99999999999"};
}
$("#ordermaster-pan_no").inputmask(inputmask_b1ea8b87);
});
通过 可以应用此动态屏蔽。
我正在使用 yii2 高级应用程序。现在我有一个下拉菜单和一个文本框。下拉值是 Driving Licence
和另一个 Pan No.
当用户 select Driving Licence
时,屏蔽格式为 9999 9999999999
,Pan No.
为 99-9999-9999
。
我的_form.php
<div class="form-group" id="div_document">
<?= $form->field($orderMasterModel, 'document')->dropDownList(['Driving Licence' => 'Driving Licence', 'Pan Card' => 'Pan Card'], ['placeholder' => 'Document']) ?>
</div>
<div class="form-group" id="div_document_no">
<?= $form->field($orderMasterModel, 'pan_no')->widget(\yii\widgets\MaskedInput::className(), [
'mask' => '999-999-9999',
]) ?>
</div>
现在我不知道如何制作文本框的依赖掩码格式。请帮忙。
我认为如果没有任何类型的 AJAX 就无法做到这一点,PHP 在执行时在服务器中运行,因此如果没有其他编程就无法有条件地更改掩码。
在这里我找到了解决办法。使用 Php 无法提供动态掩码。所以我使用 javascript.
先把
'data-plugin-inputmask'=>"inputmask_b1ea8b87"
放在需要遮罩的地方<div class="col-md-6"> <div class="form-group" id="div_document_no" style="display: none"> <?= $form->field($orderMasterModel, 'pan_no')->textInput(['placeholder' => 'Document No','data-plugin-inputmask'=>"inputmask_b1ea8b87"]) ?> </div>
在查看页面绑定jquery.inputmask.bundle.js。
list(,$mask)=Yii::$app->assetManager->publish('@bower/jquery.inputmask/dist/jquery.inputmask.bundle.js'); $this->registerJsFile($mask,['position' =>View::POS_END]);
在javascript.
$('#ordermaster-document').on('change', function() { if(this.value=='Pan Card') { var inputmask_b1ea8b87 = {"mask":"a{5}9999A{1}"}; }else{ var inputmask_b1ea8b87 = {"mask":"a{2}99 99999999999"}; } $("#ordermaster-pan_no").inputmask(inputmask_b1ea8b87);
});
通过 可以应用此动态屏蔽。