我有一个正在工作的ASP.NET MVC项目。浏览器:Internet Explorer(忘记什么版本),但是我的工作机器是32位Windows7。
在其中一个视图页面中,我有一个下拉列表。如果有任何更改,它将使用特定值填充文本框。以下是代码(转换为HTML):请注意,下拉列表的格式为表单
<form>
<select id="searchType" name="searchType" onchange="FillMyTextBox()">
<option value="1" selected>A</option>
<option value="2">B</option>
...
</select>
</form>
在页面顶部,我有一个名为“提交”的按钮。单击此按钮后,将禁用所有字段并提交表单。 $('input, select').attr('disabled', 'true')
“提交”按钮将消失,另一个按钮“返回”出现。如果单击此“后退”按钮,则将所有字段设置为可编辑并提交表单。 $('input, select').removeAttr('disabled')
(我想您已经知道,这两段代码使用jQuery。)
但是,一旦按下“提交”按钮,select将禁用属性并提交表单。表单/页面返回后,我发现下拉列表中缺少onchange()函数。为什么?我使用document.getElementById('searchType).hasAttribute('onchange')
,并且返回false(当我在Internet Explorer开发人员工具的“控制台”选项卡中时)。
为什么disabled
属性会删除下拉列表的onchange()
事件?这是设计缺陷吗?我的意思是,如果我在页面上有很多控件,如果我禁用了这些控件,但后来又以某种方式启用了它们(例如,用户查看所输入的内容,但发现需要重新输入一些字段),那么我必须重新将每个事件与自己的事件相关联,似乎效率很低。
[Edit]强调下拉列表位于表单内部,每个按钮将导致提交表单[/ Edit]
答案 0 :(得分:0)
jQuery中没有$('input', 'select')
。
而是使用
$("input, select")
答案 1 :(得分:0)
尝试使用struct matrix {
int rows;
int cols;
int **cells;
};
看看是否有效。
或者以其他方式this page可能会有所帮助。根据答案,分配属性使用$('input, select').prop('disabled', false)
并通过$("input").attr('disabled','disabled')