Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 更改事件不起作用时选择选项列表_Jquery_Asp.net_Asp.net Mvc_Select - Fatal编程技术网

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>