代码之家  ›  专栏  ›  技术社区  ›  Naeem Ali

DynamicForm+javascript

  •  1
  • Naeem Ali  · 技术社区  · 8 年前

    我有一些动态的表格 Yii2 它对我来说很好,但我需要添加一个函数来获取成本价格和销售价格。它在第一种动态形式下工作,但在另一种动态形式中不工作。

    我的表格代码:

    <div class="row">
        <div class="col-sm-12">
             <?= $form->field($modelPoItem, "[{$i}]po_item_no")->dropDownList(
                                arrayhelper::map(Itemes::find()->all(),'itemes_id','item_name'),
                                ['prompt'=>'select Item', 'onchange' => 'getProduct($(this))', 'onkeyup' => 'getProduct($(this))']
                                ) ?>
        </div>  
    </div>
    <div class="row">
         <div class="col-sm-4">
              <?= $form->field($modelPoItem, "[{$i}]quantity")->textInput(['maxlength' => 128 ])  ?>
         </div>
         <div class="col-sm-4">
            <?= $form->field($modelPoItem, "[{$i}]cost_price")->textInput(['maxlength' => 128]) ?>
          </div>
          <div class="col-sm-4">
              <?= $form->field($modelPoItem, "[{$i}]sale_price")->textInput(['maxlength' => 128]) ?>
          </div>
    </div>
    

    这是我的JS代码:

    function getProduct(item) {
     var index  = item.attr("id").replace(/[^0-9.]/g, "");
     var itemes_id =$('#poitem-'+index+'-po_item_no').val();
     $.get('index.php?r=itemes/price',{ itemes_id : itemes_id },function(data)
      {
       var data=$.parseJSON(data);
       alert('#poitem-'+index+'-sale_price'); // i used it just to check if the id Is correct 
       $('#poitem-'+index+'-sale_price').attr('value',data.sale_price);
       $('#poitem-'+index+'-cost_price').attr('value',data.cost_price);
      });
    }
    

    Update - 1

    Update - 2

    Update - 3

    1 回复  |  直到 8 年前
        1
  •  1
  •   Insane Skull    8 年前

    试试这个:

    function getProduct(item) {
       var index  = item.attr("id").replace(/[^0-9.]/g, "");
       var itemes_id =$('#poitem-'+index+'-po_item_no').val();
       $.get('index.php?r=itemes/price',{ itemes_id : itemes_id },function(data)
       {
          var data=$.parseJSON(data);
    
         $('#poitem-'+index+'-sale_price').val(data.sale_price);
         $('#poitem-'+index+'-cost_price').val(data.cost_price);
       });
    }