榆树 - 从js更新日期输入字段不起作用

时间:2015-12-20 14:17:58

标签: javascript elm

我正在与榆树合作开展一个项目,但目前我仍然遇到以下问题:我想更新elm生成的输入字段

newDate address =
    header
      [ id "header" ]
      [ input
          [ id "datePicker"
          , autofocus False
          , type' "date"
          , onEnter address Add
          ]
          []
      ]

我最初的想法是将我的.elm代码与html集成,我成功完成了这项工作,使我能够创建自定义js脚本以与dom进行交互。

但是,在添加以下脚本时(将日期设置为当天),它似乎不会更新日期字段。

    $(document).ready( function() {
        var now = new Date();

        var day = ("0" + now.getDate()).slice(-2);
        var month = ("0" + (now.getMonth() + 1)).slice(-2);

        var today = now.getFullYear()+"-"+(month)+"-"+(day) ;

        $('#datePicker').val(today);
    });

但是,如果我在浏览器控制台本身执行此代码,它确实有效。

有什么想法吗?

提前致谢!

-K

补充:根据要求将榆树整合到html中

<html>

  <head>
    <title>Embedded Elm</title>
    <script type="text/javascript" src="elm.js"></script>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
  </head>

    <body>
        <div id="main" style="width:50%; height:400px;"></div>
    </body>

    <script type="text/javascript">
    var mainDiv = document.getElementById('main');
    Elm.embed(Elm.Main, mainDiv);

    $(document).ready( function() {
        var now = new Date();

        var day = ("0" + now.getDate()).slice(-2);
        var month = ("0" + (now.getMonth() + 1)).slice(-2);

        var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
       $('#datePicker').val(today);
    });


    </script>

</html>

1 个答案:

答案 0 :(得分:1)

我猜我的初始本能是准确的,即Elm.embed的行为比我们想要的更异步,并且ready回调在元素存在于DOM之前触发。值得观察调试器中的事件序列以验证是否存在这种情况。

编辑:我自己快速浏览一下,看起来就像第一个榆树框架可以通过调用embed同步呈现。您是否确信应用程序的初始状态会导致包含该表单组件?

在任何情况下,如果你想要实现的是使用当前日期初始化一次字段,这个问题可能会有用:Initialize model with current date

编辑2 :可能导致某些问题的另一个问题是 <script>标记关闭后的<body>标记。这个问题似乎表明这不是一个好主意;也许你也可以尝试在<body>关闭之前加入它?