javascript
  • momentjs
  • 2013-12-30 3 views -1 likes 
    -1

    Я пытаюсь запретить пользователям вводить неправильную дату. Я нашел Momemnt.js для обработки дат и работает на fiddle.JavaScript не работает локально, но работает на скрипте

     <script type="text/javascript" src='http://momentjs.com/downloads/moment-with-langs.min.js'> 
    
    
    
        $(document).ready(function() { 
    
         function CheckForPastDate(sender, args) { 
    
        selectedDate = sender._selectedDate; 
        var todayDate = new Date(); 
        if (selectedDate.getTime() < todayDate.getTime()) { 
         sender.selectedDate = todayDate; 
         sender._textbox.value = moment(selectedDate).format(sender._format); 
         alert("Wrong date!"); 
         } 
        } 
    
    CheckForPastDate({ 
    _textbox: document.getElementById('<%#TextBox1.ClientID %>'), 
    _selectedDate: new Date(2013, 5, 3), 
    _format: 'MMMM Do YYYY, h:mm:ss a' 
        }); 
    
    
    
    }); 
    
    
    
    
    
    
        </script> 
        </head> 
    <body> 
    <form id="form1" runat="server"> 
    <div> 
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> 
         </asp:ToolkitScriptManager> 
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
        <asp:CalendarExtender ID="TextBox1_CalendarExtender" runat="server" Enabled="True" 
         TargetControlID="TextBox1" OnClientDateSelectionChanged="CheckForPastDate"> 
        </asp:CalendarExtender> 
        </div> 
        </form> 
        </body> 
        </html> 
    

    Так что я загрузил moment.js, используя nuget, но это все равно не работает. У меня нет никаких исключений, но я тоже не получаю неправильные сообщения.

    +0

    возможно дубликат [мой JQuery скрипка не работает] (http://stackoverflow.com/questions/6556509/my-jquery-fiddle-isnt-working) – putvande

    +0

    , где вы называете яваскрипт функции вне JavaScript ? он не будет запускаться внутри тегов скрипта, вроде этого –

    ответ

    1

    Предположим, что вы ссылаетесь на библиотеку moments.js где-то на своей странице, прежде чем использовать ее, если вы поместите ее так (в указанном порядке) в свой код, к моменту выполнения Javascript элементы управления не будут существовать но на странице. вы должны поместить javascript под кодом HTML/ASPX или, лучше, выполнить свой javascript, когда документ будет готов.

    В чем разница с JSFiddle: код javascript помещается после кода HTML в рендеринг.

    Вы также должны знать, что разные вещи в .NET могут привести к изменению идентификатора клиента ваших элементов управления. Я имею в виду, если вы помещаете это в панель, например, получившийся ID вашего текстового поля, однажды отображаемый в HTML, скорее всего (хотя вы можете теперь установить это, если я не ошибаюсь), будет отличаться от того, который вы указали в JavaScript. Он будет содержать идентификатор всех контейнеров, то есть идентификатор родительской панели.

    0

    Добавить

    <script src = 'http://momentjs.com/downloads/moment-with-langs.min.js' />

    Вы должны include в moment библиотеку для вызова функции moment().

    Он работает в fiddle, так как он включен под номером Внешние ресурсы.

    +0

    Я редактировал свой код. Но я думаю, что я все испортил. Потому что я не смог запустить его снова. – user2751773

    +0

    Скопируйте/вставьте код обратно с этим в HTML, а не тегом SCRIPT ??? – Cilan

    Смежные вопросы