我有以下代码片段。
<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")
}
}
非常感谢任何帮助!谢谢!
答案 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年前和今天之间的日期。