0

私はバックボーン ビューを使用してデバッグしようとしている初心者です。エラーが発生したときに新しいタグを入力するフォーム検証があり、これらの新しい要素を作成していない場合にのみフォームデータをバックエンドに送信し<ul>ます。<li>私はそれらをチェックする必要があります。入力フィールドが何に設定されているかを示すためにこれを見つけました:

$('input').each(function(){console.log($(this).attr('id')+'  '+$(this).val());});

DOM のトラバースについて読みました

var listItems = $( 'ul' );
var special = listItems.filter( 'li' );

<ul> <li>これにより、ナビゲーションで最初のグループが検索されます

<ul> <li>DOM をスキャンして、エラーのあるクロムから HTML を作成したこれらの新しいタグとおそらく複数のタグが提供されているかどうかを確認する必要があります。ありがとう!

<div class="nav-collapse collapse">
    <ul class="nav" id="navbutts">
        <li class="" id="homebutt"><a href="#">Home</a>
        </li>
        <li id="weddingbutt"><a href="#weddings">Weddings</a>
        </li>
        <li id="dancesbutt"><a href="#dances">Dances</a>
        </li>
        <li id="contactbutt"><a href="#contact">Contact</a>
        </li>
        <li id="registerbutt" class="active"><a href="#register">Register</a>
        </li>
        <li id="bookitbutt"><a href="#bookit">Book it</a>
        </li>
        <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">More<b class="caret"></b></a>
            <ul class="dropdown-menu">
                <li><a href="#owner">The Owner</a>
                </li>
                <li><a href="#equipment">Equipment</a>
                </li>
                <li><a href="#consulting">Event Consulting</a>
                </li>
                <li><a href="#testimonials">Testimonials</a>
                </li>
                <li><a href="#testimonialinks">Testimonials link</a>
                </li>
            </ul>
        </li>
    </ul>
</div>

<div class="control-group warning">
    <label class="control-label required" for="loginnameconf">Confirm Email</label>
    <div class="controls">
        <div class="input-prepend" data-role="acknowledge-input">
            <div data-role="acknowledgement" class="add-on" style="color: rgb(255, 0, 0);"><i class="icon-warning-sign"></i>
            </div>
            <input type="email" data-type="email" required="required" placeholder="Confirm email" maxlength="254" name="loginnameconf" id="loginnameconf" class="inputclass pageRequired input-xlarge" data-validation-match-match="loginname" data-validation-match-message="Emails must match"
            aria-invalid="true">
            <span class="loginnameconf_error label label-info hide"></span>
        </div>
        <div class="help-block">
            <ul role="alert">
                <li>Not a valid email address    // this was added to the DOM
                    <!-- data-validator-validemail-message to override -->
                </li>
                <li>Emails must match</li>    // this was added to the DOM
            </ul>
        </div>
    </div>
</div>

<div class="control-group warning">
    <label class="control-label required" for="password">Password</label>
    <div class="controls">
        <div class="input-prepend" data-role="acknowledge-input">
            <div data-role="acknowledgement" class="add-on" style="color: rgb(0, 255, 0);"><i class="icon-ok"></i>
            </div>
            <input type="password" required="required" placeholder="Password" minlength="6" maxlength="16" name="password" id="password" class="inputclass pageRequired input-medium" data-validation-minlength-message="6-16 characters required" data-validation-maxlength-message="6-16 characters required"
            aria-invalid="true">
        </div>
        <span class="password_error label label-info hide"></span>
        <div class="help-block">
            <ul role="alert">   // this was added to the DOM
                <li>6-16 characters required</li>
            </ul>
        </div>
    </div>  
</div>


// I can't seem to combine the filter and the .each to find the <ul><li> elements
   I added 

// shows names and values for form input text boxes
$('input').each(function(){console.log($(this).attr('id')+' '+$(this).val());}); 

var hasError = false; 

$('ul li').each(function(index){ 
    if( $(this).text().length !== 0 ){ 
        alert('Client side error found'); hasError = true; }
});
4

1 に答える 1

0

これらの検証ライブラリのいずれかが、使用する「正常に検証された」フラグを設定していることを見つけることができません。したがって、私は新しいの存在を決定する必要がありました

  • タグ

    I needed to scan for this:
    
         <div class="help-block">
            <ul role="alert">
                <li>Not a valid email address    // this was added to the DOM
    

    これはそれを行います

      $('div.help-block ul').each(function() {
         //alert('AHHHHHH!');
         hasError = true;
     }); // end each
    
     then later:
    
     if (hasError)
        { return false; }
      else
        {
        registermodel.save();
        return false;
            }
    
  • 于 2013-11-12T02:26:46.417 に答える