2014-08-28 107 views
-1

我想使用Bootstrap 3.2 + securimage captcha附加组件创建我自己的联系表单验证脚本。但是,我的input + textarea元素的ID被返回为'undefined' - 使我的函数显示无用的错误。调用ID返回undefined

我想知道我错过了什么。我希望有人能指出我正确的方向。 我使用jQuery 1.11顺便说一句。

这里是我的HTML代码:

<form name="sentMessage" id="contactForm" novalidate> 
    <div class="row control-group"> 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
      <b><label class="toFade">Name</label></b> 
      <div class="input-group"> 
       <input type="text" id="contact-name" class="form-control toFade" placeholder="Name" /> 
       <span class="input-group-addon toFade"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span> 
      </div> 
      <p class="help-block text-danger hidden-elem">Please input name!</p> 
     </div> 
    </div> 
    <div class="row control-group"> 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
      <b><label class="toFade">Email Address</label></b> 
      <div class="input-group"> 
       <input type="text" id="contact-email" class="form-control toFade" placeholder="Email Address" /> 
       <span class="input-group-addon toFade"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span> 
      </div> 
      <p class="help-block text-danger hidden-elem">Please input e-mail!</p> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-xs-offset-1 col-xs-4 toFade"> 
      <img id="captcha" src="lib/securimage/securimage_show.php" alt="CAPTCHA Image" /> 
     </div> 
     <div class="col-xs-4 toFade"> 
      <input type="button" id="btnChangeCaptcha" class="btn btn-info btn-sm" value="Change captcha image" /> 
     </div> 
    </div> 
    <div class="row control-group margin-custom-xs"> 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
      <b><label class="toFade">Making sure you aren't a robot</label></b> 
      <div class="input-group"> 
       <input type="text" id="contact-captcha" class="form-control toFade" placeholder="Captcha code shown above" /> 
       <span class="input-group-addon toFade"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span> 
      </div> 
      <p id="error-captcha" class="help-block text-danger"></p> 
     </div> 
    </div> 
    <div class="row control-group"> 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
      <b><label class="toFade">Message</label></b> 
      <div class="input-group"> 
       <textarea rows="5" id="contact-message" class="form-control toFade" placeholder="Message"></textarea> 
       <span class="input-group-addon toFade"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span> 
      </div> 
      <p class="help-block text-danger hidden-elem">Please input message!</p> 
     </div> 
    </div> 
    <br /> 
    <div id="success"></div> 
    <div class="row text-center"> 
     <div class="form-group col-xs-12"> 
      <button type="submit" id="submitFeedback" class="btn btn-custom btn-lg toFade">Send</button> 
     </div> 
    </div> 
</form> 

我的jQuery函数:

// contact form submit 
    $('#submitFeedback').click(function() 
    { 
     var hasErrors = false; 

     // clear error messages 
     contactForm.clearErrors(); 

     // can skip buttons because it has values 
     $('#contactForm input, textarea').each(function() { 
      if(!$(this).val()) { 
       alert($(this).id); 
       hasErrors = true; 
       contactForm.addError($(this)); 
      } 
     }); 

     if(hasErrors) { 
      return false; 
     } 
    }); 

var contactForm = { 
    clearErrors: function() { 
     $('.help-block').hide(); 
    }, 
    addError: function($input) { 
     $input.siblings('.help-block').show(); 
    } 
}; 

注:$(function()...因为我贴在这里的源代码从我的jsfiddle链接来。

的jsfiddle:http://jsfiddle.net/02t0kx9d/

谢谢你,干杯!

回答

0

$(this).id$(this).attr('id')this.id

0

使用this.id或$(本).attr( 'ID')。

两者都会工作..