当我清除选项时,选择onChange不再起作用

时间:2019-02-07 16:14:31

标签: javascript jquery html ajax

我有此代码:

success: function (data) {
                $('#' + idDivRefresh).endLoading();
                if (data.message != '@Geral.Sucesso') {
                    $('#' + idDropDown + 'option:selected').prop("selected", false)
                    $('#input-' + idDropDown).val('');
                    $('#' + idDropDown + 'option').each(function () {
                        if (this.defaultSelected) {
                            this.selected = true;
                            return false;
                        }
                    });
                    alert(data.message);
                }
            }

我清除了下拉菜单中选择的选项。 但是当我再次选择另一个选项时,“ onChange”功能不起作用。

HTML

<div id="iddb78e" class="field-Small">
    <select data-val="true" data-val-number="The field Ente must be a number." id="iddb78e" name="fornecedorVerbal.IdEnteIniciativaInvestment" style="display: none;">
    <option value=""> </option>
    <option value="4">30B66 - BUY CHANGES</option>
   </select>
    <input class="dropdown" type="text" id="input-iddb78e" autocomplete="off"></div>

脚本OnChange

<script language="javascript" type="text/javascript">
    $("#iddb78e select")
        .change(function () {
            Tst(53287)
        })
        .loadOptions('/Tst/Method/ListarJsonEnte?IdIniciativa=2105')
        .turnAutoComplete();
</script>

怎么了?

1 个答案:

答案 0 :(得分:2)

使用以下表达式构建的CSS选择器:

'#' + idDropDown + 'option'

...将成为...

'#iddb78eoption'

因此jQuery将使用显然找不到的id iddb78eoption 查找元素。因此没有任何结果。

您真正想要的是一个空格(或大于号):

'#iddb78e option'

因此请确保像这样添加该空间:

'#' + idDropDown + ' option'

您的代码中有两个地方需要发生这种情况。