创建自定义标记要在输入字段为空时使用

时间:2014-04-17 23:32:43

标签: java jstl

我想创建一个自定义TLD标记,如果在用户提交后该字段为空,则在输入字段旁边分配一个星号。最好的方法是什么?我正在考虑使用但是我可以从表单中完成所有操作,还是应该转到servlet并返回?我想我得到的是最好的方法是什么?

我的表格

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="datetime" tagdir="/WEB-INF/tags" %>
  <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   
<!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>Assignment 4</title>
<style type="text/css">@import url(/css/style.css);</style>
</head>
<body>
<div id="registration">
<form action="registrationServlet" method="post">
<c:set var="customer" scope="session" value="${session.customer}" />
    First Name:<br>
        <input type="text" name="firstName" value="${customer.getFirstName() }"/><br>
    Last Name:<br>
        <input type="text" name="lastName" value="${customer.getLastName }"/><br>
    Email:<br>
        <input type="text" name="emailAddress" value="${customer.getEmailAddress }"/><br>
    Password:<br>
        <input type="password" name="password"/><br>
        <input type="submit" value="Submit"/><br>
        Current Date/Time: <datetime:CurrentDateTime/>
</form>
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

有一些实现这一点的可能性。最简单的可能是在javascript中执行此操作。

您可以拦截正在提交的表单,检查字段是否为空,如果是,则附加星号。如果没有,请提交表格。

例如将onsubmit添加到表单

<form id="myform" onsubmit="return validateForm()">
    <input type="text" id="myinput">

...

然后使用javascript和jquery:

function validateForm() {
    if ($('input:text').is(":empty")) {

        $('input:text').after("<span>*</span>");
        return false;
    }
    return true;
}

更强大的方法是实现服务器端验证。如果你正在使用spring mvc,那么有很多资源可以解决这个问题。

相关问题