5
respostas

DatePicker is not a function

Olá, estou usando o html fornecido na aula, mas sempre fico tendo esse erro. Por causa disso o controller não consegue salvar a data.

Alguém sabe como resolver isso ?

5 respostas

você pode postar o código desse html e da sua respectiva controller por gentileza?

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8" />
    <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script src="../materialize/js/materialize.min.js"></script>
    <script src="../materialize/css/materialize.min.css"></script>
    <script src="../materialize/js/inicializar.js"></script>


    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
    <title>EscolAlura</title>
</head>
<body class="grey lighten-3">
<div id="formularioEdicao" class="container">
    <h3 class="main-title center">Cadastrar Aluno</h3>
    <div class="row">
        <form class="col s12" action="#" th:action="@{/aluno/salvar}" th:object="${aluno}" method="post">
            <div class="section">
                <h5>Dados Básicos</h5>
                <div class="row">
                    <div class="input-field col s12">
                        <input id="nome" type="text" th:field="*{nome}" />
                        <label for="nome">Nome</label>
                    </div>
                </div>
                <div class="row">
                    <div class="input-field col s12">
                        <input id="dataNascimento" type="date" class="datepicker" th:field="*{dataNascimento}"/>
                        <label for="dataNascimento">Dt. Nascimento</label>
                    </div>
                </div>
                <div class="row">
                    <div class="input-field col s12">
                        <input id="curso" type="text" class="validate" th:field="*{curso.nome}"  />
                        <label for="curso">Curso</label>
                    </div>
                </div>

            </div> <!-- Fim SECTION Dados Basicos -->

            <div class="row">
                <div class="input-field col s12 center">
                    <button class="btn waves-effect waves-light" type="submit" name="action">Salvar Aluno</button>
                </div>
            </div>
        </form>
    </div>

</div> <!-- Fim do formulario de edicao -->


</body>
</html>

meu cadastrar.html,está no seguinte diretório: ../resources/templates/aluno

meu materialize.min js está em: ../resources/static/materialize/js

e meu materialize.min.css está em: ../resources/static/materialize/css

Mas não acho que seja um erro de importação , pois o console não acusa erro algum. Apenas esse do datepicker. Valeu

Tenta colocar os scripts abaixo do fechamento da tag body. só por desencargo e me diz ai se resolve

Já tentei alex. Mas não vai... Mas descobri uma coisa... se eu importar o materialize.min.js e o materialize.min.css a partir de outro link, como:

 <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/css/materialize.min.css" />

Tudo passa a funcionar normalmente. Já baixei o materialize novamente, e tentei importar localmente mas msm assim não vai.

Estranho. Você baixou a mesma versão que essa cdn ai usa? Eu rodei seu código num codepen. E ele carregou o componente normalmente. Talvez o que esteja acontecendo ai é o tempo de carregamento da lib. Já que pelo cdn ele funciona.