我正在编写一个小脚本来测试表单在提交之前是否已被更改。所以我可以使用正常的输入(文本,文本区域等):
if(element.defaultValue != element.value) {
altered[element.name] = element.value;
element.value = element.defaultValue;
}
这很好用。但似乎选择输入没有要检查的输入。虽然在Firebug中它确实出现在DOM列表中,但是黑色(而不是绿色)我认为这意味着它是由浏览器添加的(如果我错了,请纠正我)。
如果我为select元素记录element.defaultValue,则返回undefined
。
所以我的问题是,select是否有一个defaultValue属性?或者我可以利用哪些替代方案?
答案 0 :(得分:1)
如果您未在<select>
元素上设置默认选定选项(或者如果您始终选择第一个选项作为默认选项),则可以尝试:
if(element.selectedIndex && element.selectedIndex != 0) {
//this handles <select> inputs
altered[element.name] = element.options[element.selectedIndex].value;
element.selectedIndex = 0;
}
else if(element.defaultValue != element.value) {
//this handles any other kind of input (except not really for checkbox, radio, etc.)
altered[element.name] = element.value;
element.value = element.defaultValue;
}
答案 1 :(得分:1)
默认选项将defaultSelected属性设置为true。
您可以使用以下命令获取JQuery中的默认选择:
$('#ddlReceivingStore').children('option[defaultSelected="true"]')