我的网站上有以下下拉菜单
<select name="Templates" onchange="document.sendform.message.value = 'some text here'; return false;">
<option value="#" selected>----Templates----</option>
<option value="#">Absense</option>
<option value="#">Lates</option>
</select>
这当前将文本发送到名为“message”的文本区域,但我希望所选的每个选项的文本都不同。有没有一种简单的方法可以做到这一点?
谢谢!
答案 0 :(得分:4)
这是:
http://jsfiddle.net/sinisake/3NQH7/
<form name="sendform">
<select name="Templates" onchange="document.sendform.message.value = this.value; return false;">
<option value="#" selected>----Templates----</option>
<option value="absense">Absense</option>
<option value="lates">Lates</option>
<input type="text" value="" name="message" />
</select>
</form>
答案 1 :(得分:0)
onchange
事件处理程序是发送文本的内容;如果要根据所选选项的值发送文本,则应使用更高级的事件处理程序:
document.TemplateForm.Templates.onchange = function () {
var value = this.value;
if (value === 'absence') {
setMessage('Absence message');
} else if (value === 'laters') {
setMessage('Laters message');
} else {
setMessage('Default message');
}
return false;
};
function setMessage(message) {
document.sendform.message.value = message;
}
我将select
元素包装在一个表单中,只需在上面的JavaScript中对其进行处理:
<form name="TemplateForm">
<select name="Templates">
<option value="#" selected>----Templates----</option>
<option value="absence">Absense</option>
<option value="laters">Lates</option>
</select>
</form>
为了查看选择了什么值,我还为options
元素添加了唯一值。