ja.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. /*********************************
  2. * Themes, rules, and i18n support
  3. * Locale: Japanese; 日本語
  4. *********************************/
  5. (function(factory) {
  6. typeof module === "object" && module.exports ? module.exports = factory( require( "jquery" ) ) :
  7. typeof define === 'function' && define.amd ? define(['jquery'], factory) :
  8. factory(jQuery);
  9. }(function($) {
  10. /* Global configuration
  11. */
  12. $.validator.config({
  13. //stopOnError: true,
  14. //focusCleanup: true,
  15. //theme: 'yellow_right',
  16. //timely: 2,
  17. // Custom rules
  18. rules: {
  19. digits: [/^\d+$/, "数字だけを入力してください"]
  20. ,letters: [/^[a-z]+$/i, "手紙のみでお願いします"]
  21. ,date: [/^\d{4}-\d{2}-\d{2}$/, "有効な日付を入力してください、,フォーマット:YYYY-MM-DD"]
  22. ,time: [/^([01]\d|2[0-3])(:[0-5]\d){1,2}$/, "有効な時刻を入力してください,00:00~23:59の間"]
  23. ,email: [/^[\w\+\-]+(\.[\w\+\-]+)*@[a-z\d\-]+(\.[a-z\d\-]+)*\.([a-z]{2,4})$/i, "有効なメールアドレスを入力してください"]
  24. ,url: [/^(https?|s?ftp):\/\/\S+$/i, "有効なURLを入力してください"]
  25. ,accept: function (element, params){
  26. if (!params) return true;
  27. var ext = params[0],
  28. value = $(element).val();
  29. return (ext === '*') ||
  30. (new RegExp(".(?:" + ext + ")$", "i")).test(value) ||
  31. this.renderMsg("ファイル拡張子を{1}のみを受け入れる", ext.replace(/\|/g, '、'));
  32. }
  33. },
  34. // Default error messages
  35. messages: {
  36. 0: "このフィールド",
  37. fallback: "{0}は有効ではありません",
  38. loading: "検証プロセス...",
  39. error: "ネットワークエラー",
  40. timeout: "要求がタイムアウトしました",
  41. required: "{0}は必須です",
  42. remote: "この値が使用されている",
  43. integer: {
  44. '*': "整数を入力してください",
  45. '+': "正の整数を入力してください",
  46. '+0': "正の整数または0を入力してください",
  47. '-': "負の整数を入力してください",
  48. '-0': "負の整数または0を入力してください"
  49. },
  50. match: {
  51. eq: "{0}と{1}と同じでなければなりません",
  52. neq: "{0}と{1}は同じにすることはできません",
  53. lt: "{0}未満{1}なければならない",
  54. gt: "{0}より{1}大なければならない",
  55. lte: "{0}小なりイコール{1}なければならない",
  56. gte: "{0}大なりイコール{1}なければならない"
  57. },
  58. range: {
  59. rg: "{1}~{2}の数を入力してください",
  60. gte: "{1}以上の数を入力してください",
  61. lte: "{1}以下の数を入力してください",
  62. gtlt: "{1}~{2}の間の数を入力してください",
  63. gt: "{1}より大きい数を入力してください",
  64. lt: "{1}より小きい数を入力してください"
  65. },
  66. checked: {
  67. eq: "{1}項目を選択してください",
  68. rg: "{1}から{2}の項目を選択してください",
  69. gte: "少なくとも{1}の項目を選択してください",
  70. lte: "{1}の項目まで選択してください"
  71. },
  72. length: {
  73. eq: "{1}文字を入力してください",
  74. rg: "{1}文字から{2}文字までの値を入力してください",
  75. gte: "{1}文字以上で入力してください",
  76. lte: "{1}文字以内で入力してください",
  77. eq_2: "",
  78. rg_2: "",
  79. gte_2: "",
  80. lte_2: ""
  81. }
  82. }
  83. });
  84. /* Themes
  85. */
  86. var TPL_ARROW = '<span class="n-arrow"><b>◆</b><i>◆</i></span>';
  87. $.validator.setTheme({
  88. 'simple_right': {
  89. formClass: 'n-simple',
  90. msgClass: 'n-right'
  91. },
  92. 'simple_bottom': {
  93. formClass: 'n-simple',
  94. msgClass: 'n-bottom'
  95. },
  96. 'yellow_top': {
  97. formClass: 'n-yellow',
  98. msgClass: 'n-top',
  99. msgArrow: TPL_ARROW
  100. },
  101. 'yellow_right': {
  102. formClass: 'n-yellow',
  103. msgClass: 'n-right',
  104. msgArrow: TPL_ARROW
  105. },
  106. 'yellow_right_effect': {
  107. formClass: 'n-yellow',
  108. msgClass: 'n-right',
  109. msgArrow: TPL_ARROW,
  110. msgShow: function($msgbox, type){
  111. var $el = $msgbox.children();
  112. if ($el.is(':animated')) return;
  113. if (type === 'error') {
  114. $el.css({left: '20px', opacity: 0})
  115. .delay(100).show().stop()
  116. .animate({left: '-4px', opacity: 1}, 150)
  117. .animate({left: '3px'}, 80)
  118. .animate({left: 0}, 80);
  119. } else {
  120. $el.css({left: 0, opacity: 1}).fadeIn(200);
  121. }
  122. },
  123. msgHide: function($msgbox, type){
  124. var $el = $msgbox.children();
  125. $el.stop().delay(100).show()
  126. .animate({left: '20px', opacity: 0}, 300, function(){
  127. $msgbox.hide();
  128. });
  129. }
  130. }
  131. });
  132. }));