为啥 .submit() 不能使用 Bootstrap Datepicker 处理 changeDate?

Posted

技术标签:

【中文标题】为啥 .submit() 不能使用 Bootstrap Datepicker 处理 changeDate?【英文标题】:Why is .submit() not working on changeDate with Bootstrap Datepicker?为什么 .submit() 不能使用 Bootstrap Datepicker 处理 changeDate? 【发布时间】:2013-02-13 18:01:03 【问题描述】:

我正在使用Bootstrap Datepicker,我想在选择新日期时提交带有新日期值的表单 - 所以没有提交按钮。

我的表单 html 是:

<form id="date-form" method="post" action="" accept-charset="utf-8" >
<input data-date-autoclose="true" data-date-start-view="months" data-date-format="M yyyy" data-date-min-view-mode="months" type="text" id="date-input" />

我有这个张贴表格OK:

$('#input-date')
    .datepicker()   
    .on('changeDate', function()
        $('#date-form').submit();
);

但是我需要获取新的日期值,所以有这个:

$('#input-date')
    .datepicker()   
    .on('changeDate', function(e)

        $('#date-form').submit(function() 

            var date = $('#input-date').val();

            $.post("my-page", function() 
                alert("success with posting " + date);
            );

             // even if I just have console.log("worked"); in here it wont log

        );
);

使用上面的代码根本不会发出 POST 请求。正如我提到的,我也无法写入控制台。

我怎样才能让表单发布?

【问题讨论】:

【参考方案1】:

您提交表单的第一个示例。

第二个例子是你为提交事件分配一个函数。它不会提交表单。您必须调用 .trigger("submit");执行它。

我想你只是想要

$('#input-date')
    .datepicker()   
    .on('changeDate', function(e)    
        var date = $('#input-date').val();    
        $.post("my-page", function() 
            alert("success with posting " + date);
        );
    );

【讨论】:

谢谢 - 这行得通(现在看起来像一个愚蠢的问题!)。【参考方案2】:

setTimeout 将在 Datepicker 更新输入中的值后调用:

$('#input-date')
    .datepicker()
    .on('changeDate', function(e)
        setTimeout(function () 
            $('#date-form').submit();
        );
    );

【讨论】:

以上是关于为啥 .submit() 不能使用 Bootstrap Datepicker 处理 changeDate?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能更改要提交的输入元素的类型?

为啥我不能更改要提交的输入元素的类型?

Oracle job为啥不能自动执行,手工执行可以

为啥此 python 代码在 pyspark 中有效,但在 spark-submit 中无效?

为啥 ExecutorService.submit(Runnable task) 返回 Future<?> 而不是 Future<Void>?

在css中,属性选择器前面为啥要加标签,比如 input[type="submit"]