HTML <select> defaultValue属性(但不是<option selected =“selected”>变体)</option> </select>

时间:2011-07-16 13:37:35

标签: html dom

我正在编写一个小脚本来测试表单在提交之前是否已被更改。所以我可以使用正常的输入(文本,文本区域等):

if(element.defaultValue != element.value) {
    altered[element.name] = element.value;
    element.value = element.defaultValue;
}

这很好用。但似乎选择输入没有要检查的输入。虽然在Firebug中它确实出现在DOM列表中,但是黑色(而不是绿色)我认为这意味着它是由浏览器添加的(如果我错了,请纠正我)。

如果我为select元素记录element.defaultValue,则返回undefined

所以我的问题是,select是否有一个defaultValue属性?或者我可以利用哪些替代方案?

2 个答案:

答案 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"]')