我想使用“ondblclick”事件和jQuery库将文本从selected替换为另一个。这是我简单的HTML代码:
<input id="text_inp" >
<select id="info" ondblclick="PutValue()" >
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
</select>
和jQuery代码:
function PutValue(){
var _val = $(this).text();
$("#text_inp").val(_val);
}
和控制台错误:
未捕获的TypeError:无法调用未定义的方法'toLowerCase'
答案 0 :(得分:1)
您可以使用.val()
function PutValue(){
var _val = $(this).val();
$("#text_inp").val(_val);
}
BTW在Safari中,无法双击选择。
使用像ondblclick
这样的内联事件处理程序是不好的做法,最好采取以下措施:
$("#info").dblclick(function(){
var _val = $(this).val();
$("#text_inp").val(_val);
});
工作小提琴:http://jsfiddle.net/m2xRX/1/(关于更改事件)
答案 1 :(得分:0)
您应该明确定义输入类型:
替换它:
<input id="text_inp" >
有了这个:
<input id="text_inp" type="text" />
答案 2 :(得分:0)
如果您要使用内联方法,则必须传递要单击的元素
<input id="text_inp" >
<select id="info" ondblclick="PutValue(this)" > <!-- put this as a parameter -->
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
</select>
然后在你的功能中你会得到它
function PutValue(t) { // here t is the element / this
var _val = $(t).val(); // to get the currently selected value use val
$("#text_inp").val(_val);
}
由于你使用的是jQuery,你应该用jQuery方式
$('#info').dblclick(function(){
var _val = $(this).val();
$("#text_inp").val(_val);
});