2013-09-23 52 views
3

我想弄清楚用户是否在页面上做了任何更改。 以下是我正在做的,以实现这一目标。 我访问在JavaScript的asp.net表单元素如下在asp.net中设置表单元素的默认值

var _totalElementsPresent = document.getElementById("aspnetForm").elements.length; 
for(var i=0;i<_totalElementsPresent;i++) 
    { 
var _formObject = document.getElementById("aspnetForm").elements[i]; 
    switch(_formObject.type) 
    { 

case 'select-one' : 
     case 'select-multiple': 
        for (var j = 0; j < _formObject.options.length; j++) 
        { 
        if (_formObject.options[j].selected !=_formObject.options[j].defaultSelected) 
        _flag = 1;   
        } 


    case 'radio' : 
        if (_formObject.checked != _formObject.defaultChecked) 

我设置选择假的单选按钮,如下

<asp:RadioButton ID="CopyRadioButton" runat="server" Text="Copy" 
            Checked="false"/> 

但_formObject.defaultChecked将被设置为真。

如何设置单选按钮checked = false,下拉选择= true。

回答

1

问题出在你的if语句上:记住,如果输入没有“checked”属性,_formObject.checked将是未定义的。 (缺少的属性是指示输入不检查的有效途径)尝试围绕切换你的if语句:

if (_formObject.checked == _formObject.defaultChecked) 
{ 
    // the value has not changed 
} 
else 
{ 
    // the value has changed 
} 

编辑:这同样适用于在下拉选项中选择属性