oyzj642 2012-07-06 18:06 采纳率: 0%
浏览 297
已采纳

提交表单时如何既能先表单验证再访问action

问题具体描述:我想对表单做及时验证功能,在提交数据前对表单数据验证,可最后一个文本框不知道如何设置,试了试在提交按钮里与form<onsubmit="return 函数()" 效果一样,都同时执行了action和表单验证,有没有哪种方法能先表单在action,我不想用xml验证action,效果不好。

jsp页面代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <base href="<%=basePath%>">

        <title>填写进货信息</title>

        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <link rel="stylesheet" type="text/css" href="theme/office/style.css" />
        <script type="text/javascript" src="js/Calendar6.js">
</script>

    </head>
    <script type="text/javascript">
function checkName() {
    var str = document.getElementById("name").value;
    if (str == '') {
        document.getElementById("vname").innerHTML = "<font color='red'>请填写进货名称</font>";
        return false;
    } else {
        document.getElementById("vname").innerHTML = "";
        return true;
    }
}
function checkNum() {
    var str = document.getElementById("num").value;
    if (str == '') {
        document.getElementById("vnum").innerHTML = "<font color='red'>请填写进货数量</font>";
        return false;
    } else {
        document.getElementById("vnum").innerHTML = "";
        return true;
    }
}
function checkMan() {
    var str = document.getElementById("man").value;
    if (str == '') {
        document.getElementById("vman").innerHTML = "<font color='red'>请填写进货人</font>";
        return false;
    } else {
        document.getElementById("vman").innerHTML = "";
        return true;
    }
}
function checkSupplier() {
    var str = document.getElementById("supplier").value;
    if (str == '') {
        document.getElementById("vs").innerHTML = "<font color='red'>请填写供应商</font>";
        return false;
    } else {
        document.getElementById("vs").innerHTML = "";
        return true;
    }
}
function checkPrice() {
    var str = document.getElementById("price").value;
    if (str == '') {
        document.getElementById("vp").innerHTML = "<font color='red'>请输入单价</font>";
        return false;
    } else {
        document.getElementById("vp").innerHTML = "";
        return true;
    }
}
function checkAll() {
    if (checkName() && checkNum() && checkMan() && checkSupplier()
            && checkPrice()) {
        return true;
    } else {
        return false;
    }
}
</script>

    <body class="tab-nav-page" onmousedown="return false;"
        onselectstart="return false;">

        <ul class="group">
            <li>
                <div class="hl" id="tb1">
                    <span class="l"> </span>
                    <span class="a"></span>
                    <span class="r"> </span>
                </div>
            </li>
            <li class="active">
                <div class="hl" id="tb2">
                    <span class="l"> </span>
                    <span class="a">进货新增 </span>
                    <span class="r"> </span>
                </div>
            </li>
        </ul>
        <div class="bgline"></div>
        </br>
        </br>
        <table class="page-header" align="center">
            <tbody>
                <tr>
                    <td class="title">
                        <img src="images/menu/infofind.gif" />
                        <span>填写进货信息</span>
                    </td>
                </tr>
            </tbody>
        </table>
        <form enctype="multipart/form-data" method="post" name="form1"
            action="buy_addBuy" onsubmit="checkAll()">
            <table class="frame" align="center">
                <tbody>
                    <tr>
                        <td class="label">
                            商品名称:
                        </td>
                        <td>
                            <input type="text" name="buy.goodsname" id="name"
                                onblur="checkName()" />
                            <div id="vname" style="display: inline"></div>
                        </td>

                    </tr>
                    <tr>
                        <td class="label">
                            商品类型:
                        </td>
                        <td>
                            <select class="text" name="typeid">
                                <option value="--选择进货类型--">
                                    --选择进货类型--
                                </option>
                                <c:forEach items="${type}" var="type">
                                    <option value="${type.id}">
                                        ${type.typename}
                                    </option>
                                </c:forEach>


                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td class="label">
                            进货数量:
                        </td>
                        <td>
                            <s:textfield name="buy.goodsnum" cssClass="text" id="num"
                                onblur="checkNum()" />
                            <div id="vnum" style="display: inline"></div>
                        </td>
                    </tr>
                    <tr>
                        <td class="label">

                            进货日期:
                        </td>
                        <td>
                            <input type="text" class="text" name="buy.buydate"
                                onfocus=calendar(this) />
                        </td>
                    </tr>
                    <tr>
                        <td class="label">
                            进货人:
                        </td>
                        <td>
                            <s:textfield name="buy.buyman" cssClass="text" id="man"
                                onblur="checkMan()" />
                            <div id="vman" style="display: inline"></div>
                        </td>
                    </tr>
                    <tr>
                        <td class="label">
                            供应商:
                        </td>
                        <td>
                            <s:textfield name="buy.supplier" cssClass="text" id="supplier"
                                onblur="checkSupplier()" />
                            <div id="vs" style="display: inline"></div>
                        </td>
                    </tr>
                    <tr>
                        <td class="label">
                            单价:
                        </td>
                        <td>
                            <s:textfield name="buy.price" cssClass="text" id="price"
                                onblur="checkPrice()" />
                            <div style="display: inline" id="vp"></div>
                        </td>
                    </tr>
                 
                </tbody>
            </table>
            <table align="center">
                <tbody>
                    <tr class="cmdbar">
                        <td>
                            <input type="submit" value="提交" />
                        </td>
                        <td>
                            <input type="reset" value="重填" />
                        </td>
                    </tr>
                </tbody>
            </table>
        </form>

    </body>
</html>

  • 写回答

1条回答 默认 最新

  • zwxiaole 2012-07-06 18:28
    关注









    js代码
    function sub(){
    boolean flag=true;//验证是否通过 默认通过
    进行验证,不通过就flag=false;
    if(!flag){
    alert("不通过")
    return false;
    }else{
    document.getElementById("form1").submit();//表单提交
    }
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 Apache poi使用问题
  • ¥21 matlab怎么求时域信号的二阶导数
  • ¥15 判断两个表是否完全相同
  • ¥15 java map类型数据格式,如何快速通过前缀匹配元素
  • ¥15 stc12c5a60s2、QMC5883L、LCD1602组合测量磁场所需程序
  • ¥20 Win11测试yolov4,“找不到nvcuda.dll”怎么办?
  • ¥15 simulink绘制bode图
  • ¥15 php_network_getaddresses: getaddrinfo failed: Name or service not known
  • ¥15 用msg发消息出现的问题
  • ¥15 unity3d机械臂