前回と同じjQueryを使っていて思わぬ事象に出くわした。
今度は必須チェックを入れたカラムのプレースホルダが漢字のみだと、テキストエリアに値を入力しても必須チェックのエラーが出続けるという件。
あくまで、漢字だけというのポイントでプレースホルダに英語やひらがなや数字が含まれていると発生。
入力フォーム
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <script src="js/jquery-1.8.2.min.js" type="text/javascript"></script>
- <script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script>
- <script src="js/languages/jquery.validationEngine-ja.js" type="text/javascript" charset="utf-8"></script>
- <script type="text/javascript">
- jQuery(document).ready(function($){
- // 入力チェック
- jQuery("#Form1").validationEngine();
- });
- </script>
- <body>
- <form id="Form1" name="Form1" method="post" action="">
- <table width="100%" class="inputBox">
- <tbody>
- <tr>
- <td width="20%">名前</td>
- <td width="80%">
- 名前:<input type="text" name="sName" id="sName" size="50" maxlength="50" placeholder="山田太郎" class="validate[required]"/><br>
- </td>
- </tbody>
- </table>
- </form>
- </body>
- </html>
全然意味が分からず、仕方がないので、jsに手を入れた。
jquery.validationEngine.js 975行目付近でプレイホルダに関わる記述をコメントアウトした。
- default:
- var field_val = $.trim( field.val() );
- var dv_placeholder = $.trim( field.attr("data-validation-placeholder") );
- //var placeholder = $.trim( field.attr("placeholder") );
- if (
- ( !field_val )
- || ( dv_placeholder && field_val == dv_placeholder )
- //|| ( placeholder && field_val == placeholder )
- ) {
- return options.allrules[rules[i]].alertText;
- }
- break;
- }
- },
これで解決!
困った人他にいないんだろうか???