If you can dream it, you can do it.

元タイトル「北の大地のIT技術屋より」

jQuery-Validation-Engineで入力しているにも関わらず必須チェックが走るバグの対応

前回と同じjQueryを使っていて思わぬ事象に出くわした。

今度は必須チェックを入れたカラムのプレースホルダが漢字のみだと、テキストエリアに値を入力しても必須チェックのエラーが出続けるという件。

あくまで、漢字だけというのポイントでプレースホルダに英語やひらがなや数字が含まれていると発生。

 

入力フォーム

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <script src="js/jquery-1.8.2.min.js" type="text/javascript"></script>
  6. <script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script>
  7. <script src="js/languages/jquery.validationEngine-ja.js" type="text/javascript" charset="utf-8"></script>
  8. <script type="text/javascript">
  9. jQuery(document).ready(function($){
  10.         // 入力チェック
  11.         jQuery("#Form1").validationEngine();
  12. });
  13. </script>
  14. <body>
  15.  <form id="Form1" name="Form1" method="post" action="">
  16.    <table width="100%" class="inputBox">
  17.         <tbody>
  18.      <tr>
  19.      <td width="20%">名前</td>
  20.      <td width="80%">
  21.      名前:<input type="text" name="sName" id="sName" size="50" maxlength="50" placeholder="山田太郎" class="validate[required]"/><br>
  22.         </td>
  23.     </tbody>
  24.   </table>
  25.  </form>
  26. </body>
  27. </html>

 

全然意味が分からず、仕方がないので、jsに手を入れた。

jquery.validationEngine.js 975行目付近でプレイホルダに関わる記述をコメントアウトした。

 

  1.                 default:
  2.                     var field_val = $.trim( field.val() );
  3.                     var dv_placeholder = $.trim( field.attr("data-validation-placeholder") );
  4.                     //var placeholder = $.trim( field.attr("placeholder") );
  5.                     if (
  6.                          ( !field_val )
  7.                         || ( dv_placeholder && field_val == dv_placeholder )
  8.                         //|| ( placeholder && field_val == placeholder )
  9.                     ) {
  10.                         return options.allrules[rules[i]].alertText;
  11.                     }
  12.                     break;
  13.             }
  14.         },

 

これで解決!

困った人他にいないんだろうか???