在我的视图中,我有两个jquery日期输入字段,其中有两个按钮用于处理这些日期选择。在第一个按钮上,我通过ajax发送数据,并在一些div中显示数据,这是完美的。
除了那个按钮,我还有一个按钮,用于显示pdf文档中的数据。当然我不想使用ajax,但我确实想使用相同的选定日期数据(我现在想要使用另外两个输入来处理用户选择)。
所以我的观看代码段就是这样的
<tr>
<td>@Html.TextBox("dateFrom", null, new { @class = "date", @id = "datePickerFrom" })</td>
<td>@Html.TextBox("dateTo", null, new { @class = "date", @id = "datePickerTo" })</td>
<td>
<input type="submit" value="Send" class="dateBtn" /></td>
<td>
<input type="submit" value="PDF" class="dateBtnPdf" />
</td>
</tr>
我正在使用js来处理点击处理程序并将数据发送到控制器以进行ajax操作
$(document).ready(function () {
$(".dateBtn").click(function (event) {
var dateFrom = $("#datePickerFrom").val();
var dateTo = $("#datePickerTo").val();
GetDetails(dateFrom, dateTo);
})
function GetDetails(dateFrom, dateTo) {
$.ajax({
..... ommited on purpose
所以我的问题是如何将所选值发送到控制器以获取第二个不使用ajax的按钮(我是否需要使用表单,如果是这样,如何使用相同的输入字段来获取将被发送的值到控制器?)
$(".dateBtnPdf").click(function (event) {
var dateFrom = $("#datePickerFrom").val();
var dateTo = $("#datePickerTo").val();
//send values to the controller /report/pdfDemo
})
由于
答案 0 :(得分:3)
我看到这种情况的解决方案很少,我建议你接近的那个:
<form id="form-dates" action"/report/pdfDemo"> <!-- Here you could use @Url.Action("pdfDemo","report") -->
@Html.Hidden("dateFromPdf");
@Html.Hidden("dateToPdf");
<input type="submit" value="PDF" class="dateBtnPdf" />
</form>
在您的javascript中,更新表单的隐藏值并提交:
$(".dateBtnPdf").click(function (event) {
$('[name="dateFromPdf"]').val( $("#datePickerFrom").val() );
$('[name="dateToPdf"]').val( $("#datePickerTo").val() );
$('#form-dates').submit();
//send values to the controller /report/pdfDemo
})