Change()不会与类标识符反应

每当一个字段(全部同一个类)的值发生变化时,我需要执行某些操作。 但它并没有工作。

$('.payment-amount').change(function () {
        ajax_get_supposed_money_left();
    });

我不知道为什么。 我用ID而不是类和everytnig工作正常完全相同的行动:

$('#tripsummary-money_begin').change(function () {
        ajax_get_supposed_money_left();
    });

该类是正确指定的,因为在我的函数中我使用$('.payment-amount').val()并返回正确的值。 在使用change()动作时它只是不想工作。

编辑:
我使用Yii2,因此相关Html的部分如下所示:

DynamicFormWidget::begin([
    'widgetContainer' => 'dynamicform_wrapper_expenses', // required: only alphanumeric characters plus "_" [A-Za-z0-9_]
    'widgetBody' => '.container-expenses', // required: css class selector
    'widgetItem' => '.item-expense', // required: css class
    'limit' => 99, // the maximum times, an element can be cloned (default 999)
    'min' => 0, // 0 or 1 (default 1)
    'insertButton' => '.add-item-expense', // css class
    'deleteButton' => '.remove-item-expense', // css class
    'model' => $expense_models[0],
    'formId' => 'expense-create-form',
    'formFields' => [
        'amount',
        'category',
        'comment',
    ],
]);
?>
<div class="panel-body container-items">
    <div class="panel-heading font-bold">
        <button type="button" class="pull-left add-item-expense btn btn-success btn-xm"><i class="fa fa-plus"></i> <?= Yii::t('app', 'Add') ?></button>
        <div class="clearfix"></div>
    </div>
    <div id="payments-container" class="panel-body container-expenses"><!-- widgetContainer -->
        <?php foreach ($expense_models as $index => $model): ?>
            <div class="item-expense"><!-- widgetBody -->
                <div>
                    <?php
                    // necessary for update action.
                    if (!$model->isNewRecord) {
                        echo Html::activeHiddenInput($model, "[{$index}]id");
                    }
                    ?>
                    <div class="row">
                        <div class="col-md-3">
                            <?=
                            $form->field($model, "[{$index}]amount")->textInput(['class' => 'form-control payment-amount'])->label(Yii::t('app', 'Amount'))
                            ?>
                        </div>
                        <div class="col-md-3">
                            <?=
                            $form->field($model, "[{$index}]trip_summary_category_id")->dropDownList(ArrayHelper::map(TripSummaryCategory::find()->all(), 'id', 'name'), [
                                'class' => 'form-control payment_type',
                            ])->label(Yii::t('app', 'Category'))
                            ?>
                        </div>
                        <div class="col-md-3" >
                            <?=
                            $form->field($model, "[{$index}]comment")->textInput()->label(Yii::t('app', 'Comment'));
                            ?>
                        </div>
                        <button type="button" class="custom-remove-btn remove-item-expense btn btn-danger glyphicon glyphicon-remove"></button>
                    </div><!-- end:row -->
                </div>
                <div class="custom-divider"></div>
            </div>
        <?php endforeach; ?>
    </div>
    <?php DynamicFormWidget::end(); ?>
</div>

在这里输入图像描述


我终于找到了答案。 由于在开始时没有付款金额类的字段,所以代码不能按我想要的方式执行。 为了防止这个我使用:

$('body').on('change', '.payment-amount', function() {
        console.log($(this).val());
        // rest of code
    });

所以,根据jQuery API(提供的第一个例子):

事件处理程序可以绑定到文本输入和选择框:

$( ".target" ).change(function() {
  alert( "Handler for .change() called." );
});

现在,当从下拉列表中选择第二个选项时,将显示警报。 如果您更改字段中的文本然后单击,也会显示它。 但是,如果在没有改变内容的情况下该字段失去焦点,则该事件不会被触发。

在提供的示例中,尝试在输入中输入某些内容,然后使其失去焦点(单击它之外)。 您将在控制台中看到键入的值。

var paymentAmountInputs = $(".payment-amount");

paymentAmountInputs.change(function(evt) { 
    console.log($(this).val()) 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<input type="text" class="payment-amount" value="0" />
链接地址: http://www.djcxy.com/p/38627.html

上一篇: Change() doesn't react with class identifier

下一篇: resolving YAML files and substituting into templates