yii2动态表单wbraganca调用javascript函数
我读过一些关于yii2动态表单和javascript函数的文章。英萨斯库尔给出的解决方案是完美的。但我有一个问题。 例子: 我正在使用wbraganca中的动态表单,并尝试调用onchange事件javascript函数。我的代码是这样的yii2动态表单wbraganca调用javascript函数,javascript,jquery,yii2,Javascript,Jquery,Yii2,我读过一些关于yii2动态表单和javascript函数的文章。英萨斯库尔给出的解决方案是完美的。但我有一个问题。 例子: 我正在使用wbraganca中的动态表单,并尝试调用onchange事件javascript函数。我的代码是这样的 <?= $form->field($detail, "[{$i}]qty")->widget(\yii\widgets\MaskedInput::className(), [ 'clientOptions' =>
<?= $form->field($detail, "[{$i}]qty")->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
],
'options' => [
'class' => 'form-control',
'onchange' => 'Info($(this))',
]
]) ?>
首先,我尝试注册信息函数,如下所示
<?php
$script = <<< JS
function Info(item){
var index = item.attr("id").replace(/[^0-9.]/g, "");
alert(index);
};
JS;
$this->registerJs($script);
?>
它给出了错误,因为尚未定义Info函数
第二,我在AppAsset注册,它成功了
我的问题:有什么不同*我认为这是范围。
如何在AppAsset中定义register旁边的函数?您在哪里注册上面的脚本?如果在使用后查看小部件中,JS注册的默认位置是POS_READY public void registerJs$JS,$position=self::POS_READY,$key=null如果要在使用后放置脚本小部件,请尝试使用position POS_BEGIN或POS_HEAD。否则,您可以重写小部件类并将此脚本放入小部件的init方法中,该方法在运行方法呈现的小部件之前执行。您还可以在脚本中注册事件更改处理程序,而不是在小部件选项中注册。尝试使用$'.form控件。在“更改”上,欢迎使用。因为当您在小部件选项中定义更改处理程序时,小部件会在使用函数编写脚本之前呈现此处理程序。