我有一个从接口接收两个值的接口:
一个是日期,另一个来自下拉菜单,是字符串。
日期值可以,但下拉菜单中的值不可以。
一直在选择"默认"值。我想传递用户正在选择的值。因此,用户选择的值不是选择
@资源。资源。选择用户
这基本上就是"挑选用户"的价值。
代码如下:
<div id="employee_info" >
<div class="search_employee" id="search_employee">
<select name="search_emp" id="search_emp" style="width: 174px">
@{
if (ViewBag.DataActiveEmployee == null || ((IEnumerable<MvcApplication1.Models.ActiveUsersList>)ViewBag.DataActiveEmployee).Count() == 0)
{
//@:<h3>No records were processed.</h3>
}
else
{
@:
<option>@Resources.Resources.SelectUser</option>
foreach (var usr in ViewBag.DataActiveEmployee)
{
<option id="selected_user">@usr.EmployeeName</option>
}
@:
}
}
</select>
</div>
</div>
<div id="datePicker">
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
</div>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<p>@*@Resources.Resources.Date: *@<input type="text" id="datepicker"></p>
<script name="select_date" id="select_date">
$(function () {
var userName = $('#search_emp').val();
$("#datepicker").datepicker({
//defaultDate: "+1w",
changeMonth: true,
changeYear: true,
numberOfMonths: 1,
minDate: "01/01/2008"
});
$("button.action").click(function () {
//console.log(select_date);
var date = $('#datepicker').val().toString();
$.ajax('EmployeeDate', {
data: {
strUserName: userName,
strDate: date
},
success: function (data, textStatus, jqXHR) {
//this will happen on success of request
$('#DataUser').html(data);
},
error: function () {
console.log("error handler when ajax request fails... ");
},
});
});
});
</script>
<button class="action" type="button" id="button_select">@Resources.Resources.ButtonFind</button>
我也试过这个:
var userName = $('select#search_emp option:selected').val();
但我得到了同样的结果。
有什么想法吗?提前感谢!
var userName = $('#search_emp').val();
在加载页面时(在document.ready函数中)正在运行。因此,它将在userName变量中存储此时所选的值。当你点击按钮时,它不会从下拉列表中更新该值。将该代码移动到click事件处理程序中,它将在此时从下拉列表中获得选定的值,而不是以前的值。