选择值后,更改问题仍然存在

时间:2018-10-16 09:47:52

标签: javascript jquery onchange

大家早上好。 我正在一个项目上,我必须解决一个问题。

enter image description here

如您所见,如果我们尝试单击“ Prossimo步骤”(下一步),则“ formulario”确实是一个强制变量,结果如下:

enter image description here

他说选择一个表格继续。 但是,如果我们选择一种形式,则错误仍然存​​在:

enter image description here

所以我认为问题出在更改功能上,但是当我修改代码时,代码从未更改。

这是函数:

$('#first-step-button').on('click', function(e) {
        e.preventDefault();
        if(!$('#formulario').val()) {
            $('select#formulario').parent().addClass('error-control-group').on('change', function() { $(this).removeClass('error-control-group') });
            return false;
        } else if(!$('#variable').val()){
            $('select#variable').parent().addClass('error-control-group').on('change', function() { $(this).removeClass('error-control-group') });
            return false;
        }
        $('.collapse').collapse("show");
        $('#first-step-button').attr('disabled', true);
        $('.row .second-step').removeClass('second-step');
    });

这是html代码

<div class="form-group col-xs-12 col-md-3">
            <div class="col-xs-12">
                <label for="formulario" class="control-label no-padding-right bolder blue"><?= $this->translate('Select form to test on'); ?>: *</label>
                <select class="chosen-select form-control" name="formulario" id="formulario" data-placeholder="<?= $this->translate('Select the form'); ?>">
                    <option></option>
                    <?php foreach($this->formulario_list as $f): ?>
                        <option <?php if($f->formulario == $this->formulario): ?> selected <?php endif; ?> value="<?= $f->formulario; ?>"><?= $this->translate($f->formulario); ?> - <?= $this->translate($f->titolo); ?></option>
                    <?php endforeach; ?>
                </select>
                <p class="error-msg alert alert-danger"><i class="fa fa-warning"></i> <?= $this->translate('Select a form to continue'); ?></p>
            </div>
        </div>

PHP

$deModel = $this->getModelObject('Datawide\Model\DataExtractionTable', 'data_extraction');
    $formularioList = $deModel->getListaFormulari($categorieUtente);
    $formularioListArray = $deModel->getListaFormulari($categorieUtente)->toArray();

$view = new ViewModel(array(
        'normal_user' => $checkUE['normal_user'],
        'formulario_list' => $formularioList,
        'formulario_list_array' => $formularioListArray,
        'var_list' => $varList
    ));
    return $view;



if($this->getRequest()->isPost()){
            $formulario = $this->getRequest()->getPost('formulario');

1 个答案:

答案 0 :(得分:1)

您将on更改传递给父元素而不是select元素。将此添加到您的代码中

$('#formulario').on('change', function() {
    $(this).parent().removeClass('error-control-group');
});