1

誰かがjqueryを使用してテキストフィールドを空白のままにした場合、エラーメッセージを出力しようとしていますが、表示されていません。これはhtmlコードです:

 <form id="form1" runat="server">
    <div>
    <table>
     <tr>
    <td>
   <label>Name</label></td>
   <td> <input class="required" type="text" name="name" id="name" /><span>(required)</span></td>
     </tr><tr>
    <td><br/><label>Address</label></td>
    <td><input class="required" type="text" name="address" id="address"/><span>(required)</span></td></tr>
     </table>
    </div>
    </form>

これは Jquery コードです。

$(document).ready(function () {
   var requiredFlag = ' * ';
    $('form :input').filter('.required').next('span').text(requiredFlag).end();
    if ($(this).is('.required')) {
       if (this.value == '') {
       var errorMessage = 'This is a required field';
                             };
            $('span></span').text(errorMessage).appendTo($(this));
                             }; 
});

私は何かが欠けているかもしれません。専門家を助けます。ありがとうございました。

4

2 に答える 2

1
  1. thisあなたのコードでは、要素でwindow/documentはなくオブジェクトを参照しています。input
  2. コードにタイプミスがあります => $('span></span');
  3. event handler検証するためのコードにはありませんinputs
  4. マークアップにスパン要素があり、新しいものを生成する必要はありません
  5. submit入力を検証するためにフォームイベントを使用できます
  6. :inputセレクターは廃止されました

これを試して:

var errorMessage = 'This is a required field';
$('form input.required').next().text('*');

$('form').submit(function(){
   var errors = 0;
   $('input.required', this).each(function(){
       if (this.value == '') {
          $(this).next().text(errorMessage);
          errors++;
       }
   })
   if (errors > 0) {
     return false // prevents the default action of the event if there are errors
   }
})
  1. submit()
  2. next()
  3. each()
于 2012-08-17T13:07:31.387 に答える
0

私はそれが良いセレクタだとは思わない: $('span></span'). jquery Siblings セレクターを使用し、スパン テキストを .text() または .html() 関数 http://api.jquery.com/html/で変更します

于 2012-08-17T13:07:41.477 に答える