从输入

时间:2017-02-21 11:05:24

标签: javascript jquery ajax forms razor

我在逻辑方面遇到了一些麻烦。我正在使用Ajax来发布我的表单,我正在尝试以正确的方式发送一些值。

这是我的表格。

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

        <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" />

        <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>

        <input onclick="mySubmit(this.form)" class="testthis" type="text" spellcheck="false" autocomplete="off" name="lift" value="Squat" readonly="readonly" />
        <input onclick="mySubmit(this.form)" class="testthis" type="text" spellcheck="false" autocomplete="off" name="lift" value="Benchpress" readonly="readonly" />
        <input onclick="mySubmit(this.form)" class="testthis" type="text" spellcheck="false" autocomplete="off" name="lift" value="Deadlift" readonly="readonly" />
    </div>
</form>

所以我想要实现的是,我的表格中的最后三个输入设计为“按钮”,这可能很奇怪,但正如我所说,我很难以一个好的方式解决这个问题,无论如何,这三个的价值是Squat,Benchpress和Deadlift,我真的只想发送被点击的一个的值,因为在ajax调用的页面上会显示一些图表,并根据我点击的内容我想要它显示匹配的图表。

现在发生的事情是,如果我在ajax页面上var type = request.form["lift"];,结果将是“squat,benchpress,deadlift”,所以它发送所有值,我只想发送我点击的那个,我知道它给了我所有,因为他们都有相同的name="",但我不知道如何解决这个问题?

使用razor(cshtml)而不是MVC项目。

1 个答案:

答案 0 :(得分:0)

方式,我会这样做:

  1. 将这些更改为按钮,如下所示:
  2. <button id="squats"></button> [...]

    1. 如果您已完成此操作,请执行以下操作:(在表单中添加一些ID)
    2. document.getElementById('my-form').addEventListener('click', function (event) {

      var target = event.target; var optionChoosen

      if (target.tagName == 'BUTTON') {

      optionChoosen = target.id;

      }