我在逻辑方面遇到了一些麻烦。我正在使用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项目。
答案 0 :(得分:0)
方式,我会这样做:
<button id="squats"></button> [...]
document.getElementById('my-form').addEventListener('click', function (event) {
var target = event.target;
var optionChoosen
if (target.tagName == 'BUTTON') {
optionChoosen = target.id;
}