我想弄清楚用户是否对页面进行了任何更改。 以下是我为实现这一目标所做的工作。 我正在访问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并选择下拉列表= true。
答案 0 :(得分:1)
问题在于你的if语句:请记住,如果输入没有“checked”属性,_formObject.checked将是未定义的。 (缺少属性是指示未检查输入的有效方式)尝试切换if语句:
if (_formObject.checked == _formObject.defaultChecked)
{
// the value has not changed
}
else
{
// the value has changed
}
编辑:下拉选项
上的select属性也是如此