Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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函数未获取下拉文本_Javascript_Html - Fatal编程技术网

javascript函数未获取下拉文本

javascript函数未获取下拉文本,javascript,html,Javascript,Html,我正在使用javascript从下拉列表中获取所选项目的文本。 但是我没有得到文本。 我正在按姓名浏览下拉列表 我的html下拉列表如下所示: <select name="SomeName" onchange="div1();"> <option value="someVal">A</option> <option value="someOtherVal">B</option> <option value=

我正在使用javascript从下拉列表中获取所选项目的文本。 但是我没有得到文本。 我正在按姓名浏览下拉列表

我的html下拉列表如下所示:

<select name="SomeName" onchange="div1();">
    <option value="someVal">A</option>
    <option value="someOtherVal">B</option>
    <option value="someThirdVal">C</option>
</select>

您能帮我解决一下吗?

发布的原始代码片段的问题在于该文档。getElementsByName()返回一个数组,而不是单个元素

要修复原始代码段,请执行以下操作:

document.getElementsByName("SomeName");   // returns an array
尝试:


编辑:虽然这将使您启动并运行,但请注意此处其他避免使用getElementsByName()的替代答案。

发布的原始代码段的问题在于该文档。getElementsByName()返回数组而不是单个元素

要修复原始代码段,请执行以下操作:

document.getElementsByName("SomeName");   // returns an array
尝试:


编辑:虽然这将帮助您启动并运行,但请注意此处其他避免使用getElementsByName()的替代答案。

getElementsByName返回一个项目数组,因此您需要:

var select = document.getElementsByName("SomeName");      
var text = select[0].options[select[0].selectedIndex].text;     
alert(text);
或者类似的东西


编辑:与“[0]”位代码不同,您可能希望(a)在“选择”中循环所有项目(如果您希望有许多选择使用该名称),或者(b)为“选择”指定一个id并使用document.getElementById(),该id只返回一个项目。

getElementsByName返回一个项目数组,因此您需要:

var select = document.getElementsByName("SomeName");      
var text = select[0].options[select[0].selectedIndex].text;     
alert(text);
或者类似的东西


编辑:与“[0]”位代码不同,您可能希望(a)在“选择”中循环所有项目(如果您希望有许多选择使用该名称),或者(b)为“选择”指定一个id并使用document.getElementById(),该id只返回一个项目。

选项1-如果您只是在查找所选项目的值,请传递它

<select name="SomeName" onchange="div1(this.value);">
    <option value="someVal">A</option>
    <option value="someOtherVal">B</option>
    <option value="someThirdVal">C</option>
</select>

function div1(val)
{
    alert(val);
}

A.
B
C
功能分区1(val)
{
警报(val);
}
选项2-您也可以按照建议使用ID

<select id="someID" name="SomeName" onchange="div1();">
    <option value="someVal">A</option>
    <option value="someOtherVal">B</option>
    <option value="someThirdVal">C</option>
</select>

function div1()
{
    var ddl = document.getElementById("someID");
    var selectedText = ddl.options[ddl.selectedIndex].value;

    alert(selectedText);
}

A.
B
C
函数div1()
{
var ddl=document.getElementById(“someID”);
var selectedText=ddl.options[ddl.selectedIndex].value;
警报(选择文本);
}
选项3-您还可以传递对象本身

<select name="SomeName" onchange="div1(this);">
    <option value="someVal">A</option>
    <option value="someOtherVal">B</option>
    <option value="someThirdVal">C</option>
</select>

function div1(obj)
{
    alert(obj.options[obj.selectedIndex].value);
}

A.
B
C
职能部门1(obj)
{
警报(对象选项[obj.selectedIndex].value);
}

选项1-如果只是查找所选项目的值,请传递它

<select name="SomeName" onchange="div1(this.value);">
    <option value="someVal">A</option>
    <option value="someOtherVal">B</option>
    <option value="someThirdVal">C</option>
</select>

function div1(val)
{
    alert(val);
}

A.
B
C
功能分区1(val)
{
警报(val);
}
选项2-您也可以按照建议使用ID

<select id="someID" name="SomeName" onchange="div1();">
    <option value="someVal">A</option>
    <option value="someOtherVal">B</option>
    <option value="someThirdVal">C</option>
</select>

function div1()
{
    var ddl = document.getElementById("someID");
    var selectedText = ddl.options[ddl.selectedIndex].value;

    alert(selectedText);
}

A.
B
C
函数div1()
{
var ddl=document.getElementById(“someID”);
var selectedText=ddl.options[ddl.selectedIndex].value;
警报(选择文本);
}
选项3-您还可以传递对象本身

<select name="SomeName" onchange="div1(this);">
    <option value="someVal">A</option>
    <option value="someOtherVal">B</option>
    <option value="someThirdVal">C</option>
</select>

function div1(obj)
{
    alert(obj.options[obj.selectedIndex].value);
}

A.
B
C
职能部门1(obj)
{
警报(对象选项[obj.selectedIndex].value);
}

为什么不给dropdown一个id并使用document.getElementById?为什么不给dropdown一个id并使用document.getElementById?你不能假设数组中的第一个元素是你想要的选择。此外,getElementByName将比一个合适的getElementById更昂贵。我认为这不是一个好的解决方案。海报代码不起作用的至少一个原因是因为输出是一个数组。getElementById()更好是的,但是有一个更好的解决方案可以避免getElementBy*和getElementBy*。我认为问题的关键在于,你的回答并不是他的问题的答案,尽管它有一个真实的含义。我同意有一个很好的选项不使用getElementBy*,这就是为什么我在回复中包括了两个例子。你不能假设数组中的第一个元素就是你想要的select。此外,getElementByName将比一个合适的getElementById更昂贵。我认为这不是一个好的解决方案。海报代码不起作用的至少一个原因是因为输出是一个数组。getElementById()更好是的,但是有一个更好的解决方案可以避免getElementBy*和getElementBy*。我认为问题的关键在于,你的回答并不是他的问题的答案,尽管它有一个真实的含义。我同意有一个很好的选项不使用getElementBy*,这就是为什么我在回复中包含了两个例子。