Bootstrap-datepicker没有正确地发布隐藏值

时间:2012-10-19 19:15:22

标签: forms twitter-bootstrap datepicker

我正在使用bootstrap-datepicker,当用户点击提交按钮时,需要发送所选日期和隐藏值。代码如此:

            <div class='input-append date datepicker' data-date=$today data-date-format='mm-dd-yyyy'>
            <form class='well' action='Update_Birthday.php' method='POST'>  
            <input type='hidden' name='ContactID' value=$ContactID>
            <input class='span5' size='16' type='text' name='date' readonly>
            <span class='add-on'><i class='icon-calendar'></i></span>
            <button type='submit' class='btn'>Submit</button>  
            </form> 
        </div>  

如果在选择日期之前单击“提交”,则会正确发送ContactID(但当然日期为空)。当我选择日期时,“ContactID”和“date”都是相同的,即用户选择的日期。

如何正确发送日期和隐藏值?

帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

使用此代码(基本上是您已经使用的代码,并将引号添加到值中):

        <div class='input-append date datepicker' data-date='$today' data-date-format='mm-dd-yyyy'>
        <form class='well' id='birthdayForm' action='Update_Birthday.php' method='POST'>  
        <input type='hidden' name='ContactID' value='$ContactID'>
        <input class='span5 dateInput' size='16' type='text' name='date' readonly>
        <span class='add-on'><i class='icon-calendar'></i></span>
        <button type='submit' class='btn'>Submit</button>  
        </form> 
    </div>

当用户选择日期时,没有理由ContactID被覆盖。

至于在选择日期之前阻止表单提交,这将需要一些JavaScript。我建议只使用一个值预先填充date输入(可能是之前指定的生日,根据您的代码判断?) - 由于该字段是只读的,用户通常无法清空该值,只更改日期。

如果你想把它留空,那么这样的事情应该会有所帮助:

$('#birthdayForm').on('submit', function(e) {
    $('.dateInput').each(function() {
        if ($(this).val().length < 1) {
            e.preventDefault();
        }
    });
});