2011-08-05 37 views
1

我跟着railscast 213 (calendars) from Ryan Bates只讀文本輸入Rails3中

在那裏,他使用了一個文本輸入框的彈出一個日期選擇器,能正常工作。我想給輸入日期限制,因此提供了以下屬性:

$(function() { 
    $("#question_deadline").datepicker({ duration: 'fast', maxDate: '+2m', minDate: 'now' }); 
}); 

現在,當我按在文本框的日期選擇器彈出,但我仍然可以在文本字段中鍵入更改日期...所以我以爲我把這個特定字段的_form.html.erb文件中的readonly選項放在true,這個工作,但日期不寫入數據庫。

於是我在的application.js文件中所做的:

$(function() { 
      $("#question_deadline").datepicker({ duration: 'fast', maxDate: '+2m', minDate: 'now' }); 
    }); 

    $("#question_deadline").focus { 
     function() 
     $("#question_deadline").attr("readonly", true); 
    } 

    $("#question_deadline").blur { 
     function() 
     $("#question_deadline").removeAttr("readonly"); 
    } 

但是,這阻止了日期選擇器從所有的工作?

明白了媒體鏈接:

$(function() { 
    $("#question_deadline").focus(function() { 
     $("#question_deadline").attr("readonly", true); 
    }); 
}); 

$(function() { 
    $("#question_deadline").blur(function() { 
     $("#question_deadline").removeAttr("readonly"); 
    }); 
}); 

問候, 泰斯

+0

那麼,這只是一個語法錯誤? – Arsen7

+0

是的......這是! – Thijs

回答

0

我想你可以攔截"onChange"事件,並驗證在控制值。 強迫客戶總是使用日期選擇器可能不一定會受到所有人的歡迎。 我個人通常喜歡輸入日期而不是選擇日期。

如果您驗證日期,並且該值恰好無效,則可以強制用戶返回並顯示日期選擇器。我謙虛地相信這將是一個更加用戶友好的方法。

+0

謝謝,但我只是無法弄清楚爲什麼整個功能不工作時,我但在那裏的額外功能......? – Thijs

+0

閱讀編輯...已解決! :) – Thijs

+0

我很高興。在這種情況下,我謙虛地相信我不配得到'接受'標誌,除非我的回答真的對你有幫助。 :) – Arsen7