jQuery方法没有';除非我先使用alert(),否则我无法读取全局变量
此方法响应select元素的OnChange方法。当用户切换到文本模式时,我会通知该用户键入的内容将丢失。用户可能会决定取消操作并保持他/她处于的任何模式(文本或帖子) 加载页面时,previousAlertType的值为Email,即1jQuery方法没有';除非我先使用alert(),否则我无法读取全局变量,jquery,asp.net-mvc-2,Jquery,Asp.net Mvc 2,此方法响应select元素的OnChange方法。当用户切换到文本模式时,我会通知该用户键入的内容将丢失。用户可能会决定取消操作并保持他/她处于的任何模式(文本或帖子) 加载页面时,previousAlertType的值为Email,即1 var previousAlertType = '<%= (int)AlertType.Email %>'; var-previousAlertType=''; 问题是,除非我使用警报添加显示它的行(表示重要的行),否则它不会工作 我添加了警
var previousAlertType = '<%= (int)AlertType.Email %>';
var-previousAlertType='';
问题是,除非我使用警报添加显示它的行(表示重要的行),否则它不会工作
我添加了警报以检查previousAlertType的值。完成后,我删除了它,方法停止工作。在研究了原因之后,我把它放了回去,然后这个方法起作用了。我只是不明白这个问题
谢谢你的帮助
编辑:
这就是触发上述方法的原因
<select id="User_AlertType" name="User_AlertType"
onchange="javascript: DisplaySMSElements()">
<option value="<%= (int)AlertType.Email %>">Email</option>
<option value="<%= (int)AlertType.SMS %>">Text</option>
<option value="<%= AlertType.Post %>">Post</option>
</select>
电子邮件
正文
邮递
您的问题可能是许多不同的事情。您尚未发布显示故障的完整代码集。如果您声称存在变量范围问题,那么如果您希望任何人找到解决方案,则需要显示变量定义的范围
您显示的jQuery代码片段(doc:ready)缺少一个闭括号
这把小提琴很好
var-previousAlertType='';
$(文档).ready(函数(){
$('#User_AlertType')。焦点(函数(){
previousAlertType=this.value;
}).更改(显示选择);
});
听起来像是比赛条件。什么触发了显示选择
?@KevinB,请查看更新。
var previousAlertType = '<%= (int)AlertType.Email %>';
<select id="User_AlertType" name="User_AlertType"
onchange="javascript: DisplaySMSElements()">
<option value="<%= (int)AlertType.Email %>">Email</option>
<option value="<%= (int)AlertType.SMS %>">Text</option>
<option value="<%= AlertType.Post %>">Post</option>
</select>
var previousAlertType = '<%= (int)AlertType.Email %>';
$(document).ready(function() {
$('#User_AlertType').focus(function () {
previousAlertType = this.value;
}).change(DisplaySMSElements);
});