RadioButton无法使用JQuery Ajax访问搜索



在这里,我正在尝试使用两个radiobutton,一个文本框和一个使用jquery ajax进行搜索。
现在问题是,我曾经的radiobutton我检查了该radiobuttn的值始终taskname作为结果搜索器到控制器始终是taskname.i.e。

<div class="form-group input-group input-group-sm">
    @Html.RadioButton("option", "TaskName") <text>TaskName</text>
    @Html.RadioButton("option", "AssignedTo") <text> AssignedTo </text>
</div>
<div class="form-group input-group">
   <input type="text" name="table_search" id="txtSearch" class="form-control pull-right" placeholder="Search--">
   <span class="input-group-btn">
      <button class="btn btn-default" id="btnSearch" type="submit"><i class="fa fa-search"></i></button>
   </span>
</div>


下面是我的jQuery ajax

<script>
$(document).ready(function () {
    $(document).on('click', "#btnSearch", function () {
        debugger;
        var paramSprintNo = $("#getSprintNumber").val();
        var searchOption = $("#option").val();
        var searchElement = $("#txtSearch").val();
        var paramProjectid = $("#getNewProjectId").val();
        var paramsStatus = 30;
        var parameter = { sprintNo: paramSprintNo, ProjectId: paramProjectid, searchString: searchElement, searchByOption: searchOption, status: paramsStatus };
        debugger;
        $.ajax({
            url: "/TaskMains/Search",
            type: "get",
            dataType: "html",
            data: parameter,
            success: function (data) {
                debugger;
                $(".searchedContent").html("");
                $(".searchedContent").html(data);
            }
        })
    });
});
</script>


以下是控制器

 public ActionResult Search(int status, int sprintNo, int ProjectId, string searchString, string searchByOption)
    {
        var taskmaninss = (from S in db.TaskMains
                           join T in db.TaskIterations on S.TaskId equals T.TaskId
                           join TA in db.TaskAssigneds on S.TaskId equals TA.TaskId
                           join IT in db.Iterations.Where(x => x.Name.Equals("Sprint " + Math.Abs(sprintNo)) && x.ProjectId == ProjectId) on T.IterationId equals IT.IterationId
                           join A in db.AllStatus.Where(x => x.StatusFor == 10) on S.Status equals A.Status
                           select new { S.TaskName, S.ProjectId, A.StatusName, S.Status, S.TaskId, S.PercentCompleted, TA.ProjectMember.MemberId, TA.ProjectMember.User.UsrName }).ToList();
        var tasklist = taskmaninss.Select(x => new TaskBySprintViewModel()
        {
            TaskName = x.TaskName,
            Status = x.Status,
            TaskId = x.TaskId,
            PercentCompleted = x.PercentCompleted,
            MemberId = x.MemberId,
            MemberName = x.UsrName,
            ProjectId = x.ProjectId,
            StatusName = x.StatusName
        }).OrderBy(x => x.StatusName).ToList();

        if (searchByOption == "AssignedTo")
        {
            ViewBag.sprintName = "Sprint " + Math.Abs(sprintNo).ToString();
            var searchedTasklistByUserName = tasklist.Where(n => n.MemberName == searchString).ToList();
            return PartialView("_InprogressTasklist", searchedTasklistByUserName.ToList());
        }
        else if (searchByOption == "TaskName")
        {
            ViewBag.sprintName = "Sprint " + Math.Abs(sprintNo).ToString();
            var searchedtasklistbytaskname = tasklist.Where(x => x.TaskName == searchString || searchString == null).ToList();
            return PartialView("_inprogresstasklist", searchedtasklistbytaskname.ToList());
        }
        else
        {
            return PartialView("_InprogressTasklist", tasklist.ToList());
        }
}

这将返回第一个无线电按钮的值

var searchOption = $("#option").val();

尝试这个

var searchOption = $("#option:checked").val();

我不是MVC大师,但是看起来您的#option元素的选择器可能正在返回两个广播框,但是val()函数为您提供了第一个无线电按钮元素的值。您可能会尝试使用var searchOption = $("#option:checked").val();

之类的东西

您在选择器下方以获取检查收音机对接值:

var searchOption = $('input[name="option"]:checked').val();

您将获得检查收音机按钮的值。

最新更新