JavaScript onChange for Date无效

时间:2014-02-21 08:48:03

标签: javascript ruby-on-rails prototypejs

我有以下代码片段。

<tr>
            <td>
                <%= "MHC Date" %>
            </td>
            <td>
                <%= text_field :candidate_mhc_detail, :mhc_date, :class => 'txtinputs', :id => "mhc_date", :value => showdate(Date.today), :style => ["width:80px;"], :onChange => "return validate_date();" %>
                <a id="_mhc_date_link" onclick="DatePicker.toggleDatePicker('mhc_date')" class="demo_link"><img src="/images/calendar.png" width="20" height="20" /></a>
                <div id="_mhc_date_calendar" class="date_picker" style="display:none">
                </div>
            </td>
        </tr>

文本字段的值,即MHC Date默认设置为Date.today,如果更改了该值,我需要执行一个javascript警告,显示“MHC Date应该是今天的日期”,但是我我在使用onChange

执行此操作时遇到问题

我的JavaScript:

function validate_date(){
        if ($F('mhc_date') != Date.today)
        {
            alert("Date should not be greater than Today's Date")
        }
    }

非常感谢任何帮助!谢谢!

2 个答案:

答案 0 :(得分:0)

首先,我鼓励你不要使用内联Javascript。尝试尽可能使用UJS,而不是添加onchange =“blah”。尝试添加一个事件处理程序,在原型中我认为这是使用observe完成的。

其次,Javascript没有Date.today来电。所以这会出错。尝试构建它,所以首先警告onchange功能是否已被触发。然后提醒文本框的值和今天的值(new Date())然后检查相等性的结果。

答案 1 :(得分:0)

不要使用验证尝试定义DateField的范围,因为标签建议您在rails上使用ruby:

<%= form_for @new_object do |f| %>
  <%= f.text_field :date_attribute, id: 'date_select_me'%>
<% end %>

<script>
  $('#date_select_me').datepicker({
    minDate: '-1Y',
    maxDate: new Date(),
  });
</script>

此方法使用jquery UI的DatePicker,在此配置下,它允许用户选择1年前和今天之间的日期。

源: http://jqueryui.com/datepicker/#min-max