我有下面的代码片段。
<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.today,如果该值被更改,我需要执行一个javascript警报,显示"MHC应该是今天的日期“,但我在onChange中执行此操作有困难
My JavaScript:
function validate_date(){
if ($F('mhc_date') != Date.today)
{
alert("Date should not be greater than Today's Date")
}
}任何帮助都是非常感谢的!谢谢!
发布于 2014-02-21 09:27:28
首先,我鼓励你不要使用内联Javascript。在可能的情况下尝试使用UJS,即,而不是添加一个onchange="blah“。尝试添加一个事件处理程序,在prototype中,我认为这是使用观察完成的。
其次,Javascript没有Date.today调用。所以这会出错。尝试构建它,因此,如果onchange函数已经被触发,那么就从只发出警报开始。然后通知文本框的值和当前值(new Date()),然后通知相等检查的结果。
发布于 2014-02-21 10:12:05
不要使用验证,而是定义DateField的范围,就像标签显示的那样,您正在使用rails:
<%= 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的DatePicker,在这种配置下,用户可以选择一年前到今天之间的日期。
来源:http://jqueryui.com/datepicker/#min-max
https://stackoverflow.com/questions/21929468
复制相似问题