HTML<选择>defaultValue 属性(但不是

发布于 2024-11-24 02:52:55 字数 442 浏览 1 评论 0原文

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

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

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

如果我记录选择元素的 element.defaultValue,它将返回 undefined

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

I am writing a small script to test if a form has been altered before it has been submitted. So normal inputs (text, textarea, etc) I can use:

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

This works fine. But it appears the select inputs don't have one to check against. Although in Firebug it does appear in the DOM listing, but in black (instead of green) which I believe means that it's added by the browser (correct me if I'm wrong).

If I log the element.defaultValue for a select element it returns undefined.

So my question, does select have a defaultValue attribute? Or some alternative that I can leverage?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

纸伞微斜 2024-12-01 02:52:55

如果您没有在

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;
}

If you are not setting a default selected option on the <select> element (or if you are always selecting the first option as the default), you can try:

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;
}
抽个烟儿 2024-12-01 02:52:55

默认选项的 defaultSelected 属性设置为 true。

您可以使用以下命令获取 JQuery 中的默认选择:

$('#ddlReceivingStore').children('option[defaultSelected="true"]')

The default option has the attribute defaultSelected set to true.

You can use the following to get the default selection in JQuery:

$('#ddlReceivingStore').children('option[defaultSelected="true"]')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文