javascript - 为隐藏的输入 onclick 赋值

标签 javascript jquery html css

出于设计原因,我想要一个 <li>在选择要查看的内容时单击(发布表单以查看数据),所以我在其中放置了一些隐藏的输入,我想知道我是否可以通过 onclick 为单击的隐藏输入提供一个值,然后 var getVal = Request.Form["clickedInput"];像这样在我的 AJAX 页面上获取值,这意味着它会在发布时发送值,因为它也会在点击时发布。

但我只希望被点击的那个得到值,如果我点击另一个选项卡在<li>我希望第一个然后删除它的值,然后现在单击输入来获取一个值?合理?

这是我的表单代码,包括 <li> .

        <form method="post" action="~/AJAXcalls/repinintAJAX.cshtml" name="form">
            <div class="reportDateDiv">

                <a class="blackColor fSize18 RPtxt">Reporting Period</a>

                <input type="text" name="inputDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                       onchange="mySubmit(this.form)" value="@inputDate" autocomplete="off" placeholder="@placeholderStartDate.ToString("MMM d, yyyy")" readonly="readonly" />

                <a class="blackColor fSize16 RPtxt RPtxtTo">to</a>

                <input type="text" name="endDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                       onchange="mySubmit(this.form)" value="@endDate" autocomplete="off" placeholder="@noEndDate.ToString("MMM d, yyyy")" readonly="readonly" />

                <select name="NormOrAvg" class="dwmViewSelect" onchange="mySubmit(this.form)">
                    <option selected=@(Request.Form["NormOrAvg"] == "1") value="1">Rep Per Set</option>
                    <option selected=@(Request.Form["NormOrAvg"] == "2") value="2">Average Rep Per Set</option>
                </select>
            </div>
            <div class="holdLiftMenu">
                <ul class="holdLiftMenuUL">
                    <li class="holdLiftMenuLI">
                        <a class="holdLiftMenuA total current">Total
                            <input type="hidden" name="hid4" id="hid4" value="" />
                        </a>
                    </li>
                    <li class="holdLiftMenuLI">
                        <a class="holdLiftMenuA squat">Squat
                            <input type="hidden" name="hid1" id="hid1" value="" />
                        </a>
                    </li>
                    <li class="holdLiftMenuLI">
                        <a class="holdLiftMenuA benchpress">Benchpress
                            <input type="hidden" name="hid2" id="hid2" value="" />
                        </a>
                    </li>
                    <li class="holdLiftMenuLI">
                        <a class="holdLiftMenuA deadlift">Deadlift
                            <input type="hidden" name="hid3" id="hid3" value="" />
                        </a>
                    </li>
                </ul>
            </div>
        </form>

这是我链接到 <li> 的代码,到目前为止,它只是隐藏/显示我的 div,但如果可能的话,我还希望在同一次点击时发生值分配/删除?

        $(document).ready(function () {
            $(".total").click(function () {
                $("#piechart").show();
                $("#piechartS").hide();
                $("#piechartB").hide();
                $("#piechartD").hide();
            });
            $(".squat").click(function () {
                $("#piechart").hide();
                $("#piechartS").show();
                $("#piechartB").hide();
                $("#piechartD").hide();
            });
            $(".benchpress").click(function () {
                $("#piechart").hide();
                $("#piechartS").hide();
                $("#piechartB").show();
                $("#piechartD").hide();
            });
            $(".deadlift").click(function () {
                $("#piechart").hide();
                $("#piechartS").hide();
                $("#piechartB").hide();
                $("#piechartD").show();
            });
        });

我绝不擅长 js 或 jquery,但我猜必须对脚本代码进行一些更改,因为目前点击功能链接到 a 标签类而不是输入,但我会如果可能的话,请在这里提供一些帮助。

我使用的是 cshtml 而不是 MVC!

最佳答案

jQuery 文档是您的 friend :http://api.jquery.com/val/

val() 函数可以通过以下方式使用:

var hiddenvalue = $("input[name=hid1]").val(); // returns input value
$("input[name=hid1]").val("NewVal"); // sets input value

只需将$("input[name=hid1]").val("NewVal");放在click()触发的匿名函数的末尾即可;

$(".total").click(function () {
    $("#piechart").show()
    $("#piechartS").hide();
    $("#piechartB").hide();
    $("#piechartD").hide();
    $("input[name=hid1]").val("NewVal");
});

关于javascript - 为隐藏的输入 onclick 赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42541609/

相关文章:

javascript - 使用 jQuery 处理 html5 iframe 内的用户点击

javascript - 是否有一个javascript来检查另一个脚本是否已被激活?

javascript - Promise with setTimeout 不返回 json

javascript - 浏览器不会将焦点设置在生成的输入上

javascript - 为什么委托(delegate)在 "p"标签中不起作用?

html - 如何自动调整所有手机/平板显示格式的 div 大小?

javascript - 如何在没有 jquery 的情况下向此代码添加淡入和淡出过渡

javascript - 如何在 echo php 函数调用中使用 js 变量?

javascript - 我可以修补现有类以扩展另一个类吗?

c# - 如何在 C# 中访问字符串化数组的元素