在 Rails 中,如果使用 JavaScript 输入的日期无效,我想通过 flash[:alert] 显示错误消息。
但这里即使给定的日期是正确的,它也会显示错误,因为页面第一次加载时它会显示消息无效日期
最初当页面加载时,我的输入文本字段“target_month_str”值为“2014/07”
我的程序代码是:
$( "#target_month_str" ).change(function()
{
var dt= $(this).val();
var dtRegex = /^(0|[1-9]\d{3})(\/)(0?[1-9]|1[012])$/;
var dtArray = dt.match(dtRegex);
if (dtArray === null){
"<%= flash[:alert] = 'Invalid date' %>"
}
});
我不明白页面加载时为什么会显示“无效日期”消息。
最佳答案
简而言之:因为您在 JavaScript 有机会在客户端上执行之前就设置了 flash
。
解决方案:继续使用 JavaScript/jQuery 显示“无效日期”消息,例如,
if (dtArray === null) {
$("div.msgs").text("Invalid date");
}
更好的是,使用任何现有的 jQuery 插件来为您完成此操作。
关于javascript - rails : flash[:alert] in if-else misbehaving in JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24840055/