Изменение свойства текстового поля не работает jQuery - PullRequest
0 голосов
/ 14 марта 2020

У меня есть раскрывающийся список, использующий этот раскрывающийся список, я пытаюсь изменить свойство. При первой загрузке страницы все работает нормально. Скажем, если я выберу ТЕКСТ Работает нормально, если я Число работает нормально НО, когда выбирается "Дата", а затем после"Число" в текстовом поле отображается КАЛЕНДАРЬ КАК ХОРОШО КАК НОМЕР. Пожалуйста, смотрите изображение enter image description here

<asp:DropDownList ID="dpType" runat="server" Visible="true">
<asp:ListItem Value="0">Select Type</asp:ListItem>
<asp:ListItem Value="1">Text</asp:ListItem>
<asp:ListItem Value="2">Number</asp:ListItem>
<asp:ListItem Value="3">Date</asp:ListItem>
</asp:DropDownList>

Вот мой Jquery код. Я хочу отобразить календарь, как показано на рисунке, когда в раскрывающемся списке установлено значение "3".

 $("#<%= dpType.ClientID %>").on('change', function () {
            //alert(this.value);
            var v = this.value;
            console.log(v);
            $("#<%= txtTypeValue.ClientID %>").prop("disabled", true); 
            if (v == '0' || v == 0) {
                <%--$("#<%= txtTypeValue.ClientID %>").html("");--%>
                $("#<%= txtTypeValue.ClientID %>").prop("disabled", true); 
                $('#<%= txtTypeValue.ClientID %>').val("");
            }

            if (v == '1' || v== "1") {
                $("#<%= txtTypeValue.ClientID %>").prop("disabled", false); 
                $('#<%= txtTypeValue.ClientID %>').val("");
                $('#<%= txtTypeValue.ClientID %>').removeClass();
                $("#<%= txtTypeValue.ClientID %>").prop('type', 'text');
            } else if (v == '2' || v == "2") {
                $("#<%= txtTypeValue.ClientID %>").prop("disabled", false); 
                $('#<%= txtTypeValue.ClientID %>').val("");
                $("#<%= txtTypeValue.ClientID %>").prop('type', 'number');
            } else if (v == '3' || v == "3") {
                $("#<%= txtTypeValue.ClientID %>").prop("disabled", false); 
                $('#<%= txtTypeValue.ClientID %>').val("");
                //$("#<%= txtTypeValue.ClientID %>").prop('type', 'date');
                $("#<%= txtTypeValue.ClientID %>").datepicker({
                    dateFormat: 'mm-dd-yy'
                });
            }
        });

Ответы [ 2 ]

1 голос
/ 14 марта 2020

Вы спрашиваете о том, что значение ввода даты не сбрасывается при изменении его класса на 'datepicker'? Если да, то попробуйте вызвать событие изменения.

вот так

$('#<%= txtTypeValue.ClientID %>').val("").trigger("change");

Это должно сработать.

0 голосов
/ 14 марта 2020

Если вы хотите удалить средство выбора даты, попробуйте следующее:

$("#<%= txtTypeValue.ClientID %>").datepicker('destroy');
...