为动态创建的字段jQuery创建函数或事件

时间:2016-04-01 11:59:44

标签: javascript php jquery function laravel

我有一张带有指标的记分卡表格。度量标准问题是从数据库中动态填充和提取的。我正在使用Laravel,我的代码:

$agent_options = array('' => 'Choose One') + DB::table('agents')->lists('name','id');
$metrics = Metric::where('campaign_id','=',1)->orderBy('id', 'asc')->get();
return view('scorecard.create')->with(array('agent_options'=>$agent_options, 'metrics'=>$metrics));

然后在我看来

@foreach($metrics as $key => $value)
<tr>
    <td class="col-md-2">{{$value->criteria}}</td>
    <td class="col-md-4">{!!$value->description!!}</td>
    <td class="col-md-4">{!!$value->question!!}</td>
    <td class="col-md-2">
        <select class="form-control" name="tl_assessment[]">
            <option value="">Choose One</option>
            <option value="Yes">Yes</option>
            <option value="No">No</option>
            <option value="N/A">N/A</option>
        </select>
    </td>
    <td class="col-md-3">{{$value->potential_points}}</td>
    <td class="col-md-3"><input type="text" class="form-control" name="score[]"></td>
</tr>
@endforeach

正如您所看到的,我正在创建tl_assessment下拉列表,如果通过回答“是”,“否”,“不适用”来满足指标,则可以记录下来。然后你可以看到potential_points

我的要求是,如果选择是和N / A,则scorepotential_points的值相同。

我对jquery很新,如果这些字段是静态的,我可以这样做。但我很困惑从哪里开始。

1 个答案:

答案 0 :(得分:0)

td放在有可能成为potential类的地方。为input的名称score[]提供score类。

它应该看起来像以下......

<tr>
    <td class="col-md-2">Test</td>
    <td class="col-md-4">Test</td>
    <td class="col-md-4">Test</td>
    <td class="col-md-2">
        <select class="form-control ts_assessment" data-key="test" name="tl_assessment[]">
            <option value="">Choose One</option>
            <option value="Yes">Yes</option>
            <option value="No">No</option>
            <option value="N/A">N/A</option>
        </select>
    </td>
    <td class="col-md-3 potential">35</td>
    <td class="col-md-3"><input type="text" class="form-control score" name="score[]"></td>
</tr>

然后你应该只需要添加以下脚本。

<script>
    $(document).ready(function() {

        $('.ts_assessment').change(function() {
            var val = $(this).val();
            var parent = $(this).parents('tr');

            if (val == 'Yes' || val == 'N/A') {
                var potential = parent.find('.potential').text();
                parent.find('.score').val(potential);               
            } else {
                parent.find('.score').val('');
            }
        });
    });
</script>