jQuery验证 - javascript

我是新来的,在jQuery中使用公式创建了验证和计算。我已经创建了六个输入字段。创建了所有字段的验证。但是当所有字段都为空时,请单击计算红色星号以显示前两个字段而不显示剩余四个字段,请帮助我的朋友

这是我的代码:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="http://code.jquery.com/jquery-1.11.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">

        function isNumber(evt) {
            evt = (evt) ? evt : window.event;
            var charCode = (evt.which) ? evt.which : evt.keyCode;
            if (charCode > 31 && (charCode < 48 || charCode > 57)) {
                return false;
            }
            return true;
        }

        function calculate() {

            var answer = 0;

            if (validate()) {

                var valueA = $("#valuea").val()

                var valueB = $("#valueb").val()

                var valueC = $("#valuec").val()

                var valueD = $("#valued").val()

                var valueE = $("#valuee").val()

                var valueF = $("#valuef").val()


                if (valueA && valueB && valueC && valueD && valueE && valueF) {
                    answer = ((parseFloat(valueB / valueA)) + (parseFloat(valueD / valueC)) + (parseFloat(valueF / valueE))) / 3;
                }
                else {

                    if (valueA && valueB && valueC && valueD)
                        answer = ((parseFloat(valueB / valueA)) + (parseFloat(valueD / valueC))) / 2;
                    else {
                        if (valueA && valueB && valueE && valueF)
                            answer = ((parseFloat(valueB / valueA)) + (parseFloat(valueF / valueE))) / 2;

                        else (valueA && valueB)
                        answer = ((parseFloat(valueB / valueA)));
                    }                   
                }
                if (parseFloat(answer) > .0238)
                    alert("Your Effective Rate = " + parseFloat(answer * 100).toFixed(2));
                else if (answer == 0)
                    alert("Your Effective Rate:0.00% ");
                else
                    alert("Oops, something has gone terribly wrong!Please attach at least 2 months of your most recent credit card processing statements and one of our specialists will respond within 24 hours with an accurate cost analysis");

            }
            return false;
        }
        function validate() {
            var status = false;

            var valueA = $("#valuea").val()

            var valueB = $("#valueb").val()

            var valueC = $("#valuec").val()

            var valueD = $("#valued").val()

            var valueE = $("#valuee").val()

            var valueF = $("#valuef").val()

            if (valueA) {
                $("#spana").hide();
                status = true;
            }
            else {
                $("#spana").show();

                status = false;
            }

            if (valueB) {
                status = true;
                $("#spanb").hide();
            }
            else {
                status = false;
                $("#spanb").show();
            }
            if (valueC && !valueD) {
                status = false;
                $("#spand").show();
                $("#spanc").hide();
            }
            if (!valueC && valueD) {
                status = false;
                $("#spanc").show();
                $("#spand").hide();
            }

            if (valueE && !valueF) {
                status = false;
                $("#spanf").show();
                $("#spane").hide();
            }
            if (!valueE && valueF) {
                status = false;
                $("#spane").show();
                $("#spanf").hide();
            }
            if (valueC && valueD) {
                $("#spand").hide();
                $("#spanc").hide();
                return true;
            }
            if (valueE && valueF) {
                status = true;
                $("#spane").hide();
                $("#spanf").hide();
            }           

            return status;

        }
    </script>
</head>
<body>
    <form>
    <table class="calculator" border='0' width='500px' cellpadding='3' cellspacing='1'
        class="table">
        <tr class="calcheading">
            <td colspan="3" align="center">
                Whats your effective rate?
            </td>
        </tr>
        <tr class="monthheading">
            <td colspan="2">
                <strong>Month 1</strong>
            </td>
        </tr>
        <tr class="calcrow">
            <td>
                Total Sales, Including Amex
            </td>
            <td align="center">
                <input type='text' name='valuea' id="valuea" onkeypress="return isNumber(event)"
                    autocomplete="off" />
                <td align="center">
                    <span style="color: Red; font-weight: bold; display: none;" id="spana">*</span>
                </td>
        </tr>
        <tr class="calcrow2">
            <td>
                Total Fees, less any terminal or rental fees
            </td>
            <td align="center">
                <input type='text' name='valueb' id="valueb" onkeypress="return isNumber(event)"
                    autocomplete="off" />
            </td>
            <td align="center">
                <span style="color: Red; font-weight: bold; display: none;" id="spanb">*</span>
            </td>
        </tr>
        <tr class="monthheading">
            <td colspan="2">
                <strong>Month 2</strong>
            </td>
        </tr>
        <tr class="calcrow">
            <td>
                Total Sales, Including Amex
            </td>
            <td align="center">
                <input type='text' name='valuec' id="valuec" onkeypress="return isNumber(event)"
                    autocomplete="off" />
            </td>
            <td align="center">
                <span style="color: Red; font-weight: bold; display: none;" id="spanc">*</span>
            </td>
        </tr>
        <tr class="calcrow2">
            <td>
                Total Fees, less any terminal or rental fees
            </td>
            <td align="center">
                <input type='text' name='valued' id="valued" onkeypress="return isNumber(event)"
                    autocomplete="off" />
            </td>
            <td align="center">
                <span style="color: Red; font-weight: bold; display: none;" id="spand">*</span>
            </td>
        </tr>
        <tr class="monthheading">
            <td colspan="2">
                <strong>Month 3</strong>
            </td>
        </tr>
        <tr class="calcrow">
            <td>
                Total Sales, Including Amex
            </td>
            <td align="center">
                <input type='text' name='valuee' id="valuee" onkeypress="return isNumber(event)"
                    autocomplete="off" />
            </td>
            <td align="center">
                <span style="color: Red; font-weight: bold; display: none;" id="spane">*</span>
            </td>
        </tr>
        <tr class="calcrow2">
            <td>
                Total Fees, less any terminal or rental fees
            </td>
            <td align="center">
                <input type='text' name='valuef' id="valuef" onkeypress="return isNumber(event)"
                    autocomplete="off" />
            </td>
            <td align="center">
                <span style="color: Red; font-weight: bold; display: none;" id="spanf">*</span>
            </td>
        </tr>
        <tr class="submit">
            <td colspan="3" align="center">
                <input type='submit' value='Calculate' onclick="return calculate();" />
            </td>
        </tr>
        <tr class="calcrow">
            <td colspan="3" align="center">
            </td>
        </tr>
    </table>
    </form>
</body>
</html>

计算所有工作正常。当字段为空时,单击计算显示红色星号为必填项,前两列保持不显示,请帮助我的朋友

参考方案

您为valueC,valueD,valueE和valueF编写的条件有误。如果要实现您想实现的功能,则也应继续从valueA和valueA开始。

但是,我的建议是使用http://jqueryvalidation.org/插件来验证元素。根据需要使用和自定义非常方便。

谢谢

用symfony隐藏树枝中的表格行 - javascript

我正在开始编码。我正在使用Symfony 3.3我想用复选框隐藏(并显示)表上的a或某些特定行。我尝试使用javascript和jquery。我希望隐藏的行保持隐藏状态。我不知道该怎么做。这是我的树枝{% block body %} <div class="container"> <h3>List of produ…

将Web用户控件添加到页面时,asp按钮onclick不会触发 - javascript

我正在使用使用Visual Studio模板创建的Web表单应用程序。模板具有一个内容占位符,该占位符被访问的任何页面的内容替换。有问题的页面有几个服务器控件,例如文本框,标签和按钮。当我单击我的更新按钮时,它可以正常工作,这些值会回传并更新数据库。我想在所有子页面上创建通用的登录提示。我的导航栏(位于我的母版页中)具有引导程序设置。我在导航栏中添加了一个下…

Telerik单选按钮所需的字段验证器 - javascript

如何设置Telerik单选按钮所需的字段验证器?我想在按钮单击“ BtnSave”上设置必填字段验证器吗?请帮忙!<telerik:RadButton ID="radio_male" runat="server" ToggleType="Radio" AutoPostBack="fa…

表单不提交或按钮提交不起作用 - javascript

据我所知,此代码必须有效,但是我编码时却无效问题在于该表单未提交。我该如何解决?选中时,我什至没有得到复选框的值。<table id="example" class="display" cellspacing="0" width="100%"> <thead&g…

在PHP文件中调用javascript函数并在加载HTML文件之后? - javascript

我需要在我的php中调用js函数,但无法正常工作。有人可以告诉我我在做什么错吗?我该如何轻松地做到这一点?谢谢!我有三个文件:  mail.php负责发送$ _POST的内容(工作正常)。我调用我的javascript函数来切换模式,具体取决于邮件是否已发送。 <? ... $response = $sendgrid->send($email);…