繁体   English   中英

Yii2 动态表单 Select2 更改事件在第二个索引中不起作用

[英]Yii2 Dynamic Form Select2 Change Event not working from second index

我试图为我的一个项目创建一个动态表单。 我初始化了一个 ajax 请求来检索字段的值。

<div class="row">
<div class="col-md-4">
<?php echo $form->field($modelAddress, "[{$i}]rt_item")->widget(Select2::class, [
'data' => $invListData,
'options' => ['placeholder' => '--Select Request Type--', 'class' => 'form-control'],
'pluginOptions' => [
'allowClear' => true
],
'pluginEvents' => [

'select2:select' =>  'function(params) {
var itemVal =  $(this).val();
var attrID = $(this).attr("id").replace(/[^0-9.]/g, "");
$.ajax({
"url" : "units",
"type" : "post",
"data" : {itemID: itemVal},
success: function (data) {
console.log(data);
console.log(attrID);
$("#reqitems-"+attrID+"-rt_unit").val(data);
},
error: function (errormessage) {
//do something else
alert("not working");

}
});
}',
],
]); ?>
</div> 
<div class="col-sm-4">
<?= $form->field($modelAddress, "[{$i}]rt_unit")->textInput(['maxlength' => true, 'readOnly' => 'true']) ?>
</div>  

ajax 在动态表单的第一个索引中运行良好。 但不幸的是,从发送索引来看,什么都没有发生。 我在stackoverflow中检查了几个问题和答案,但一切都失败了。

谁能帮我找到解决方案?

在此处输入图像描述

嗨,使用 jquery 以另一种方式找到了解决方案。
由于元素是动态加载的,我们需要通过 AJAX 或类似以下输入元素的方式动态生成。 我删除了 pluginEvent 并为动态字段初始化了一个新类。

<?php echo $form->field($modelAddress, "[{$i}]rt_item")->widget(Select2::class, [
'data' => $invListData,
'options' => ['placeholder' => '--Select Request Type--', 'class' => 'reqItem form-control'],
'pluginOptions' => [
'allowClear' => true
]); ?>  

然后我手动编写了 jquery 脚本来读取元素。

<script>
$(document).on("change", ".reqItem", function() {
    var itemVal = $(this).val();
    var attrID = $(this).attr("id").replace(/[^0-9.]/g, "");
    $.ajax({
        "url": "units",
        "type": "post",
        "data": {
            itemID: itemVal
        },
        success: function(data) {
            console.log(data);
            console.log(attrID);
            $("#reqitems-" + attrID + "-rt_unit").val(data);
        },
        error: function(errormessage) {
            //do something else
            alert("not working");

        }
    });
});

但我仍在努力使用 Yii 找到合适的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM