Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 的“defaultValue”属性?_Javascript_Jquery_Dom - Fatal编程技术网

Javascript 的“defaultValue”属性?

Javascript 的“defaultValue”属性?,javascript,jquery,dom,Javascript,Jquery,Dom,Javascript具有textObject.defaultValue=somevalue,用于从输入的页面加载中检索默认值存储值,即使您擦除输入并替换内容,也可以恢复默认值。像这样: // in the html page <input id="addr1" type="text" value="21 Oak St." /> // the jquery myInput = $("#addr1"); // the input, default value on page load

Javascript具有textObject.defaultValue=somevalue,用于从输入的页面加载中检索默认值存储值,即使您擦除输入并替换内容,也可以恢复默认值。像这样:

// in the html page
<input id="addr1" type="text" value="21 Oak St." />

// the jquery
myInput = $("#addr1"); // the input, default value on page load = 21 Oak St.

$(myInput).val('51 New St'); // wipe default and set new

// alerts 21 Oak St
alert($(myInput).val($(myInput)[0].defaultValue));
您如何在select上实现这一点

selectedIndex是布尔值,而不是值,因此不起作用


谢谢

您可能希望查看选项元素的defaultSelected属性


最初,如果选项标记的原始HTML具有显式的selected属性,则defaultSelected将为true。您可以通过在页面加载后使用Javascript在选项标签上设置属性来改变这一点,以响应您喜欢的任何条件。

可能有多个选择的选项元素,在这种情况下,如果没有设置其他要求,请选择第一个@Pointy tip是正确的,但请注意defaultValue属性可能会被同一页面中的其他代码覆盖。如果是只读的,它会更有用:-

使用Jquery,我们可以做如下事情:

$('select[name="type_id"] option').map(function()
 { 
    if($(this).attr('defaultSelected')==true) return this 
 }).get(0).value;
这将返回默认的选定选项值

我使用以下命令在论坛中循环,检查它们的默认值和当前值

如果脚本与单个selectbox交叉,它将循环遍历selectbox上的子项

oFormObject = document.forms[0];
for(i=0; i<oFormObject.elements.length; i++)
{
     oValue = oFormObject.elements[i].value;
     oType = oFormObject.elements[i].type;
     if(oType=='select-one') {
         for(k=0; k<oFormObject.elements[i].children.length; k++)
         {
             if(oFormObject.elements[i].children[k].defaultSelected==true){
                 oformElement = oFormObject.elements[i].children[k].value;
             }
         }
     }else{
         oformElement = oFormObject.elements[i].defaultValue;
     }
     console.log(oformElement);
     console.log(oValue);
     console.log(oType);
 }

这是适合我的jquery:

$('select[name="name_of_select"] option[selected]').val()

我找到了一个最短的方法:

$('select#myselect').find('option[defaultSelected]');

我在页面加载时运行此命令,手动设置选择框的默认值

// Set a default value property on selectboxes (for reverting)
$('select').each(function(index,ele) {
    var origvalue = $(this).val(),
        defaultvalue = $(this).prop('defaultValue');

    // If the default value hasn't already been set for this selectbox
    if(!defaultvalue) {
        $(this).prop('defaultValue', origvalue);
    }
});

最简单的方法是:

$('#selectbox option').prop('selected', function() {
     return this.defaultSelected;
});

我不认为selectedIndex是一个布尔值,它应该是一个整数,正如@Pointy所说的,如果你迭代选项,得到defaultSelected,你可以将selectedIndex设置为defaultSelected的索引。你需要对选项本身使用selected属性,你想成为默认值。继续走那条路。唯一的问题是如果没有选项设置了选定的HTML属性,它将返回未定义。但在这种情况下,默认值是第一个选项。