0

我正在使用 twitter 引导日期选择器(http://www.eyecon.ro/bootstrap-datepicker/

我要做的是在用户更改日期时使用输入值(例如 15-02-2012 )加载页面。

输入框使用此代码...

    <div class="input-append date"  data-date="12-02-2012" data-date-format="dd- mm-yyyy">
    <input class="span9" size="16" id="dp3" type="text" value="12-02-2012" onchange="myFunction()">
    <span class="add-on"><i class="icon-th"></i></span>

重新加载页面的 JavaScript 是这样的......

<script>
function myFunction()
{
datevalue = document.getElementById("dp3").value
window.open(datevalue,"_self");
}
</script>

问题是当日期选择器中的日期更改时(输入 id = dp3),没有任何反应,页面不会重新加载。但是当我尝试将 myFunction() 附加到另一个文本框时,它确实有效,并且能够获取 datepicker (dp3) 中的值。

所以问题是 JavaScript 没有识别 datepicker (id=dp3) 值的变化。有谁知道为什么会这样?

4

1 回答 1

1

我看到您从链接的示例 n°3 中获取了代码,但是您将代码切换id到了错误的标签。

                       Here  --.
                               V
<div class="input-append date" id="dp3" data-date="12-02-2012" data-date-format="dd-mm-yyyy">
    <input class="span2" size="16" type="text" value="12-02-2012" readonly="">
    <span class="add-on"><i class="icon-calendar"></i></span>
</div>

如果你在input标签上留下 id 并保留原始的 JS 代码,该.datepicker()方法将在错误的元素(输入)上调用:它应该在父 div 上调用。

然后,在您的 jQuery 上,您应该绑定changeDate日期选择器的事件,而不是onChange标签input本身的事件。

你可以尝试这样的事情(使用 jQuery):

$('#dp3').datepicker().on('changeDate', function() {
    //Retrieve the date located on the data of your datepicker
    var datevalue = $('#dp3').data("date");

    //You can take the value from the input as well if you want
    //The input tag doesn't really need an ID to be retrieved (see comments)
    //var datevalue = $('#dp3 input').val();

    window.open(datevalue,"_self");
});

编辑:这是一个有细微变化的工作小提琴。

于 2013-06-16T22:00:06.420 回答