2016-10-03 2 views
-1

Я хочу проверить свою форму jsp.Проверка JavaScript не работает на HTML-форме

Моя страница test.jsp приводится ниже

<%@ page import="java.util.Date" %> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Test</title> 
<script> 
    function validateForm() { 
     var address = document.getElementById("txtAddress"); 
     alert("Address : " + address); 
     if (address == null || address == "") { 
      alert("Enter Address"); 
      return false; 
     } 

     var city = document.getElementById("txtCity"); 
     if (city == null || city == "") { 
      alert("Enter City"); 
      return false; 
     } 
    } 
</script> 
</head> 
<body> 
    <form name="TestForm1" action="loginServlet" method="post" onsubmit="return validateForm();"> 
     <table> 
      <tr> 
       <td>Address :</td> 
       <td><input type="text" name="txtAddress" value="${reqObj.address}" /></td> 
       <td>City :</td> 
       <td><input type="text" name="txtCity" value="${reqObj.city}" /></td> 
      </tr> 
      <tr align="left"> 
       <td colspan="4"><input type="submit" value="Submit" /></td> 
      </tr> 
     </table> 
     <% 
      String createdDate = ""; 
      Date dt = new Date(); 
      createdDate = dt.toString(); 
      System.out.println("currentTime>>>>" + createdDate); 
     %> 
    </form> 
</body> 
</html> 

Проблема заключается в том, При запуске этого проекта моя форма test.jsp отображается с пустым поле адреса и когда я нажимаю на кнопку Отправить уведомление показывает " Адрес: нуль»

Но когда я пишу какое-то значение на поле текстового поля Address затем я нажмите на кнопку Submit снова показывает мне„Адрес: нуль“

Я использую JAVA с Eclipse, Марс 1.

+0

вы пытаетесь получить значение по идентификатору, но вы не определили Id где-нибудь в поле ввода тега –

ответ

1

Нет id атрибут присутствует в JSP.

<input type="text" name="txtAddress" value="${reqObj.address}" /> 

Добавить id (id="txtAddress") Attr, а затем использовать document.getElementById("txtAddress");

<input type="text" id="txtAddress" name="txtAddress" value="${reqObj.address}" /> 

И вы можете проверить length вместо null и ""

if(address.value.trim().length == 0) 

не только с помощью id можно получить с помощью class,name,tag также

  • document.getElementById("xyz");

  • document.getElementsByTagName("p");

  • document.getElementsByClassName("abc");

  • document.getElementsByName("xyz");

Обновление: В основном вам не хватает принимая value этого element.Take значения, а затем проверить

address.value.trim().length

+0

Могу ли я добавить атрибут id так же, как имя типа " – user3441151

+0

Да точно правильно..' ' –

+0

Не работает Поле ввода поля« Мой адрес »пусто и когда я нажимаю кнопку« Отправить » Alert =« Адрес : [object HTMLInputElement] " и вызвать loginServlet. var address = document.getElementById ("txtAddress"); alert ("Адрес:" + адрес); если (адрес.trim(). Длина == 0) { \t alert ("Enter Address"); \t return false; } user3441151

1

Определите идентификатор входного тега, поскольку вы используете document.getElementById(), и идентификатор не может быть найден, следовательно, он возвращает null каждый раз.

+0

не тот downvoting вас, но я предполагаю, что тот, кто сделал, потому что вы должны объяснить проблему и не дают только исправления;) – AxelH

+0

Лучше :) вы можете поместить код с ним (просто пример ввода с идентификатором в этом случае), но только код не помогает. (Я дал вам +1, чтобы помочь, я сомневаюсь, что другой снова пройдет, чтобы удалить его нижний план) – AxelH

+1

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

1

У вас нет идентификатора для ввода адреса, вместо этого вы можете использовать document.getElementsByName(name).

var address = document.getElementsByName("txtAddress")[0]; 

или добавить идентификатор, чтобы элемент адреса

<input type="text" id="txtAddress" value="${reqObj.address}" /> 
0

Вы указали «txtAddress» в качестве имени, но не ид. Попробуйте получить доступ к элементу, создавая идентификатор для него следующего

<input type="text" id="txtAddress" name="txtAddress" value="${reqObj.address}" /> 

Если вы не заинтересованы, чтобы добавить идентификатор, и вы хотите получить доступ к значению txtAddress по имени, а затем изменить строку в JavaScript функции следующим образом

var address = document.TestForm1.txtAddress; 

адрес здесь все еще объект. При проверке проверки для любого типа ввода укажите object.value вместо проверки непосредственно объекта. Для экс:

var address = document.TestForm1.txtAddress.value; 
Смежные вопросы