我有一个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>
答案 0 :(得分:6)
答案 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)
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
获得价值。