Jquery 更改事件不起作用时选择选项列表
我正在尝试使用选择选项列表获取值,但根本没有调用它。即使有警报也不及时,这意味着有事件没有呼叫请告诉我原因 看法 等级 等待回应 问候试试这个Jquery 更改事件不起作用时选择选项列表,jquery,asp.net,asp.net-mvc,select,Jquery,Asp.net,Asp.net Mvc,Select,我正在尝试使用选择选项列表获取值,但根本没有调用它。即使有警报也不及时,这意味着有事件没有呼叫请告诉我原因 看法 等级 等待回应 问候试试这个 $(document).ready(function () { $("#SelectNumRows").on('change', function () { alert('The option with value ' + $(this).children("option:selected").val())
$(document).ready(function ()
{
$("#SelectNumRows").on('change', function () {
alert('The option with value ' + $(this).children("option:selected").val());
});
});
你参加过这个活动吗
元素中的所有
元素都具有相同的值:
value=""
因此,当您在下拉列表中选择其他元素时,您将从“
更改为”
,这显然没有改变任何内容。这就是为什么不会触发更改事件。您应该为选项元素指定不同的值
此外,您还应该使用内置的帮助程序生成下拉列表,并避免在视图中出现可怕的标记:
@Html.DropDownList(
"selectedValue",
Constant.ArrNumberOfRows.Select(x => new SelectListItem
{
Value = x.ToString(),
Text = x.ToString(),
}),
"Number of rows",
new {
id = "SelectNumRows",
@class = "styledselect_pages"
}
)
或者如果您喜欢标签汤:
<select class="styledselect_pages" id="SelectNumRows" >
<option value="">Number of rows</option>
@{
NumberOfRows = Constant.ArrNumberOfRows;
if (NumberOfRows.Length > 0)
{
for (int i = 0; i < NumberOfRows.Length; i++)
{
<option value="@i">@NumberOfRows[i].ToString()</option>
}
}
}
</select>
行数
@{
NumberOfRows=常数。ArrNumberOfRows;
如果(NumberOfRows.Length>0)
{
for(int i=0;i
请记住,在标记汤中,
元素没有名称,这意味着如果此元素位于表单中,则提交此表单时,您无法在服务器上获取所选值。是否收到任何错误检查控制台?否,我看不到任何错误在这段代码之前,您是否在应用程序中包含jquery.js?简化警报,只需使用alert('test')
对于现在添加的jquery-1.8.2.min.js和jquery-ui-1.9.0.min.js,我需要添加的不是aded jquery.js?问题不在于获取值。问题中显示的代码应该可以很好地工作。问题是该类,删除该类后工作正常。我添加了jquery-1.8.2.min.js,我需要添加jquery.js?不,这不是必需的。您可以发布页面的所有代码吗?问题在于该类,删除该类后,它工作正常。添加razor语法后,即使在选项列表中添加了值,它也不工作。您的DOM中是否有其他具有id=“SelectNumRows”
的元素?除了这个特定的
元素之外?不,没有id=“SelectNumRows”没有更多线索的任何其他元素。发布布局和视图的完整代码可能会揭示一些其他信息。您似乎已经包含jquery两次了。先使用@Scripts.Render(“~/bundles/jquery”)
,然后手动使用jquery-1.8.2.min.js
。您应该使用ASP.NET MVC中内置的绑定机制,或者手动包含脚本,但不要将两者混合使用。
$(document).ready(function ()
{
$("#SelectNumRows").on('change', function () {
alert('The option with value ' + $(this).children("option:selected").val());
});
});
$(document).ready(function ()
{
$("#SelectNumRows").change( function () {
alert('test');
});
});
value=""
@Html.DropDownList(
"selectedValue",
Constant.ArrNumberOfRows.Select(x => new SelectListItem
{
Value = x.ToString(),
Text = x.ToString(),
}),
"Number of rows",
new {
id = "SelectNumRows",
@class = "styledselect_pages"
}
)
<select class="styledselect_pages" id="SelectNumRows" >
<option value="">Number of rows</option>
@{
NumberOfRows = Constant.ArrNumberOfRows;
if (NumberOfRows.Length > 0)
{
for (int i = 0; i < NumberOfRows.Length; i++)
{
<option value="@i">@NumberOfRows[i].ToString()</option>
}
}
}
</select>