Razor Dropdown onchange事件未触发始终未定义
Razor Dropdown onchange event not firing always undefined
我正在剃刀视图中使用dropdownlist助手
@Html.DropDownList("Country", null, "Select Your Country", new { @class = "form-control", onchange = "clickMe()" })
我已经把我的jquery文件放在Layout.cshtml 的头部分
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My ASP.NET Application</title>
@Scripts.Render("~/bundles/jquery")
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
但当我把我的脚本放在一个剃刀视图中时
<script>
$(document).ready(function () {
function clickMe() {
alert();
}
});
</script>
它给出引用错误:clickMe()未定义。当我尝试使用此代码弹出警报以检查我的jquery文件是否已加载时这很好
<script>
$(document).ready(function () {
alert();
});
</script>
这不起作用的实际原因是因为Scoping。以下代码:
@Html.DropDownList("Country",
null,
"Select Your Country",
new { @class = "form-control",
onchange = "clickMe()" })
收益率类似(我希望):
<select onchange="clickMe()">
// this is looking for a global `clickMe()` function
// but is it available?
</select>
我在这里注释了你的代码:
// clickMe() is out of scope
// it is not available here
$(document).ready(function ()
// start of anonymous function scope
{
function clickMe()
// start of clickme function scope
{
alert();
}
// end of clickme function scope
// clickMe() is available here
// it was defined in this scope
});
// end of anonymous function scope
// clickMe() is out of scope
// it is not available here
</script>
我绝对不建议这样做,但为了了解是如何让它糟糕地工作的,你可以做以下:
<script>
$(document).ready(function ()
{
window.clickMe = function()
{
alert();
}
});
</script>
通过将函数指定给窗口对象,可以使其全局可用。
更好的方法是利用Matt Bodily的答案:
<script>
$(document).ready(function () {
function clickMe() {
alert('made it!');
}
$(document).on('change', '#Country', clickMe );
});
</script>
我更喜欢把点击事件放在脚本中。尝试删除更改时的事件,并将您的功能clickMe替换为
$(document).on('change', '#Country', function(){
alert('made it!');
});
这是在下拉列表的ID上选择的,我认为它将是呈现的下拉列表中的国家
这里有另一个选项:
<script>
$('#CountryID').change(function() {
var value = $('#CountryID').val();
<script>
只需确保您的下拉列表name=或id=
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- AngularJS指令出错-无法读取属性'编译'的未定义
- 这.SOMETHING 总是返回未定义的 - extjs
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Wordpress中带有JQuery Accordion的未定义匿名函数
- Razor Dropdown onchange事件未触发始终未定义