Javascript函数this.title,this.value

时间:2012-09-03 08:35:13

标签: javascript forms

我有一个onchange将值传递给javascript函数的表单。 我设法得到this.value和student.value但是this.title没有返回任何内容。

我如何获得选项的标题?

由于

<form>
<select id="student" style="width:100%">
<option value="">--</option>
<option value="">A</option>
</select>

<select id="course" onchange="showarchive(this.value, this.title, student.value)" style="width:100%"/>
<option value="">--</option>
<option value="" title="" class=""></option>
</select>

5 个答案:

答案 0 :(得分:6)

this.options[this.selectedIndex].title

这是所选选项的标题。

这是JSFIDDLE

答案 1 :(得分:2)

为什么要输入所有这些参数的麻烦呢?您需要的一切都可以从事件对象中获得,只需更改:

<select id="course" onchange="showarchive(this.value, this.title, student.value)">

要:

<select id="course" onchange="showarchive(event)">

稍微改变你的功能:

function showarchive (e)
{
    e = e || window.event;//just for safety
    var select = e.target || e.srcElement;//select.id === course now
    var selected = select.options[select.selectedIndex];//your freshly selected option element here
    var title = selected.title;//etc...
    //as an added bonus:
    if (e.preventDefault)
    {
        e.preventDefault();
        e.stopPropagation();
        return e;
    }
    e.returnValue = false;
    e.cancelBubble = true;//redundant: onchange doesn't bubble in IE
}

这样,您就可以访问所需的一切以及更多内容:您可以取消事件本身,并操纵其行为。

答案 2 :(得分:1)

该onchange方法中的

this对应于SELECT对象而不是选定的OPTION对象。您应该掌握所选的OPTION,然后访问title属性。

答案 3 :(得分:1)

你可以得到这样的东西:

function getSelectedText(elementId) {
    var elt = document.getElementById(elementId);

    if (elt.selectedIndex == -1)
        return null;

    return elt.options[elt.selectedIndex].text;
}

并在onchange中:

showarchive(this.value, getSelectedText('course'), student.value);

答案 4 :(得分:1)

以下是一个示例(不同的示例)http://jsfiddle.net/gbsandeep/Dk3nh/

你可以执行

mySelect.options[mySelect.selectedIndex].innerText

获得价值。