2016-05-12 4 views
2

Я могу получить текст ввода от $('#checkEmail').val().trim()), но не от $('#email').val().trim()). Любая обратная связь приветствуется!.val() не возвращает текст ввода

Мой код JSP:

  <form:form name="register-form" id="register-form" method="post" commandName="registerForm" action="${registerActionUrl}"> 
       <div class="newEmail"> 
        <h4><spring:theme code="TXT001"/></h4> 
        <input type="text" name="email" id="email" value="${newUserRegisterForm.email}"> 
        <div id="form_errors"> 
         <spring:hasBindErrors name="registerForm"> 
          <c:forEach var="error" items="${loginerror.allErrors}"> 
           <c:if test="${error.field == 'email'}"> 
            <li class="alert negative"><spring:message 
              code="${empty error.defaultMessage ? error.code : error.defaultMessage}" /></li> 
           </c:if> 
          </c:forEach> 
         </spring:hasBindErrors> 
        </div> 
       </div> 
       <div class="newCEmail"> 
        <h4>Confirm Email</h4> 
        <input type="text" name="checkEmail" id="checkEmail" value=""> 
        <div id="form_errors"> 
         <spring:hasBindErrors name="registerForm"> 
          <c:forEach var="error" items="${loginerror.allErrors}"> 
           <c:if test="${error.field == 'checkEmail'}"> 
            <li class="alert negative"><spring:message 
              code="${empty error.defaultMessage ? error.code : error.defaultMessage}" /></li> 
           </c:if> 
          </c:forEach> 
         </spring:hasBindErrors> 
        </div> 
       </div> 
      </form:form> 

Моя JavaScript:

$('#register-form').on('focusout', '#email, #checkEmail', function() { 
    $(this).removeClass('error'); 
    $(this).parent().find('.error-txt').remove(); 
    window.alert("email is " + $('#email').val().trim()); 
    window.alert("checkemail is " + $('#checkEmail').val().trim()); 

    if (!validateEmail($(this).val())) { 
     $(this).addClass('error'); 
     $(this).parent().append('<p class="error-txt">Please enter valid email</p>'); 
    } else if ($('#email').val().trim() != "" && $('#checkEmail').val().trim() != "" && $('#checkEmail').val().trim() != $('#email').val().trim()) { 
     $(this).addClass('error'); 
     $(this).parent().append('<p class="error-txt">A different email has been entered in Confirm Email</p>'); 
    } 
}); 

function validateEmail(email) { 
    var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; 
    return re.test(email); 
} 

я могу получить входной текст с $('#checkEmail').val().trim()), но не от $('#email').val().trim()). Любая обратная связь приветствуется!

+1

В вашей разметке нет элемента с id-адресом – gurvinder372

ответ

0

Я думаю, вам нужно добавить элемент с идентификатором email в разметке первой

<div class="newCEmail"> 
       <h4>Confirm Email</h4> 
       <input type="text" name="email" id="email" value=""> 
       <input type="text" name="checkEmail" id="checkEmail" value=""> 
       <div id="form_errors"> 
        <spring:hasBindErrors name="registerForm"> 
         <c:forEach var="error" items="${loginerror.allErrors}"> 
          <c:if test="${error.field == 'checkEmail'}"> 
           <li class="alert negative"><spring:message 
             code="${empty error.defaultMessage ? error.code : error.defaultMessage}" /></li> 
          </c:if> 
         </c:forEach> 
        </spring:hasBindErrors> 
       </div> 
      </div> 

Теперь ваш код JS должен работать, как вы ожидаете.

+0

В моем первом сообщении отсутствует только один код jsp и только что добавлен. Спасибо за быстрый ответ! –

0

Строка «email» как-то не может быть использована здесь и $ ('# emailAddress'). Val(). Trim()) отлично работает.

Смежные вопросы