将文本从<option>替换为<input /> </option>

时间:2014-07-30 11:15:42

标签: javascript jquery

我想使用“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'

3 个答案:

答案 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);
});