3

我想弄清楚用户是否在页面上做了任何更改。以下是我为实现这一目标所做的工作。我正在访问 javascript 中的 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) 

我将单选按钮设置为 false,如下所示

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

但 _formObject.defaultChecked 将设置为 true。

如何设置单选按钮checked=false和dropdown selected=true。

4

1 回答 1

1

问题在于您的 if 语句:请记住,如果输入没有“checked”属性,则 _formObject.checked 将是未定义的。(该属性的缺失是指示未检查输入的有效方式)尝试切换您的 if 语句:

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

编辑: 下拉选项上的选择属性也是如此

于 2013-09-23T12:56:44.420 回答