从文本框的列表项中选择文本的一部分

时间:2013-11-11 12:30:20

标签: javascript jquery html

我有以下代码用于文本框:

<label>Enter the doctor id</label>
         <input type="text" autocomplete="on" name="dr_id" id="user_id" class="user_name" >

我想在' - '之后添加字符串到文本框。例如:对于Prashant Salunke-dr.salunke博士。我必须在文本框中只有dr.salunke,因为它在' - '之后。我写了下面给出的一些代码:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script>
<script type="text/javascript">

$(document).ready(function(){


    $(".slidingDiv").hide();
    $(".show_hide").show();

    $('.show_hide').click(function(){
    $(".slidingDiv").slideToggle();
    });

   $('#list li').click(function()
   {
    var arr=$(this).text().split('-');
    $('#user_id').val($(arr[1]).text());

   });

});

</script>

 <a href="#" class="show_hide">List of doctors</a><br />
    <div class="slidingDiv">
<ul id="list">
    <li style="cursor:hand;">Dr.Prashant Salunke - dr.salunke.</li>
    <li style="cursor:hand;">Dr.Kalam - dr.apj</li>
    <li style="cursor:hand;">Dr.Manmohan Singh - dr.economics</li>
</ul>
    </div>


</div>

但它不起作用。请提出一些解决方案。

2 个答案:

答案 0 :(得分:1)

arr[1]值不需要转换为jQuery对象。您可以按原样使用它来设置val()的{​​{1}},但使用input删除前导/尾随空格可能有所帮助:

$.trim

答案 1 :(得分:1)

你可以这样做:

$('#list li').click(function () {
    var arr = $(this).text().split('-');
    $('#user_id').val(arr[1]);

    // arr    returns   ["Dr.Prashant Salunke ", " dr.salunke."] 
    // arr[1] returns   dr.salunke. 
});

由于arr[1]已经有文本值,因此无需$(arr[1]).text()来获取文本值。