【问题标题】:Give value to hidden input onclick赋予隐藏输入 onclick 价值
【发布时间】:2017-03-01 20:39:19
【问题描述】:

出于设计原因,我希望在选择要查看的内容时单击<li>(发布表单以查看数据),所以我在其中放置了一些隐藏的输入,我想知道我是否可以点击 onclick hidden 输入一个值,然后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>

这是我链接到&lt;li&gt; 的代码,到目前为止它只是隐藏/显示我的 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,但我猜测必须对脚本代码进行一些更改,因为此时 click 函数链接到 a 标签类而不是输入,但我会如果可能的话,请在这里提供一些帮助。

我使用 cshtml 而不是 MVC!

【问题讨论】:

  • 我很难理解您希望发生的事情。如果可以的话,能不能说的清楚一点?
  • @PontusSvedberg $("input[name=hid1]").val(); - 返回值 $("input[name=hid1]").val("NewVal"); - 设置新值...如果它是你要找的东西
  • @zfrisch ,我的 &lt;li&gt; 有 4 个“标签”,每个标签都有一个隐藏的输入,onclick,给它一个发布的值,在我的 ajax 页面上,调用这个值,例如。 1,这样我就可以在 if 语句中使用它。但是如果没有被点击,它不应该有一个值,所以当它被调用时,它不会得到任何东西,只有被点击的,这更有意义吗?
  • @AdamK。啊,太好了!这对我行得通!你可以把它作为答案
  • @PontusSvedberg 完成 - 编码愉快! ;)

标签: javascript jquery html css


【解决方案1】:

jQuery 文档是你的朋友: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");
});

【讨论】:

    【解决方案2】:

    我已经修改了您的代码以显示文本字段,您可以稍后对其进行更改。检查一下代码,这将使您的文本字段在单击时处于活动状态。我希望这会有所帮助:

    $(document).ready(function () {
    
    $('#prentUL li').click(function(){
    $('#prentUL li input').val('');
     $(this).find('input').val('active');
    });
                
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <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" id="prentUL">
                        <li class="holdLiftMenuLI">
                            <a class="holdLiftMenuA total current">Total
                                <input type="text" name="hid4" id="hid4" value="" />
                            </a>
                        </li>
                        <li class="holdLiftMenuLI">
                            <a class="holdLiftMenuA squat">Squat
                                <input type="text" name="hid1" id="hid1" value="" />
                            </a>
                        </li>
                        <li class="holdLiftMenuLI">
                            <a class="holdLiftMenuA benchpress">Benchpress
                                <input type="text" name="hid2" id="hid2" value="" />
                            </a>
                        </li>
                        <li class="holdLiftMenuLI">
                            <a class="holdLiftMenuA deadlift">Deadlift
                                <input type="text" name="hid3" id="hid3" value="" />
                            </a>
                        </li>
                    </ul>
                </div>
            </form>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多