Javascript - 在将建议文字放入文本框

时间:2016-01-07 16:51:09

标签: javascript jquery html autocomplete

我有一个html文本框,它使用jQuery UI中的javascript自动完成功能 - v1.11.4。文本框的建议字符串是数据库中表格的多个列(patient_no,patient_name,age和residence)的串联。我想截断部分字符串,因为我只需要在我的文本框中放置patient_no列。

可能的文字建议:' 00032>>汤姆迈克尔>> 14yrs>>兰

我想要放在文本框中的内容:' 00032 '

以下是我的代码

//html
 <input name="patientNo" id="patientNo" type="text"   />




//autocomplete.php
    $pat_no_seq_result = pg_query("SELECT patient_no  || ' >> ' || surname || ' ' || other_name || ' >> ' || (current_date-year_of_birth)/365 || 'yrs' || ' >> '||residence FROM hp_outpatient_register;");
    $dname_list = array();
    while ($row = pg_fetch_row($pat_no_seq_result)) {
        $dname_list[] = $row[0] ;
    }





//javascript
  <script type="text/javascript">
        $(function() {
            var availableTags = <?php include('autocomplete.php'); ?>;
            $("#patientNo").autocomplete({
                source: availableTags,//autoFocus: true
                select: function(event, ui) {
                getPatientNo(ui.item.value);
            }
            });

            function getPatientNo(value) {
            var patNo = value.substring(0, value.indexOf(' '));
            document.getElementById("patientNo").value = patNo;
        }
        });
    </script>

在将其放入文本字​​段之前,是否有任何方法可以截断用户选择的字符串。如果有更好的方式,我建议。

1 个答案:

答案 0 :(得分:0)

我解决了类似问题,但我的服务器端是Django。我没有使用过PHP,但我假设您可以返回具有以下结构的列表对象:

var label = $.rowpatientNo + ' >> ' + $row.surname + ' >> ' + ' ' + $row.other_name + ' >> ' + $row.age;

//Structure
{'id': $row.patientNo, 'label': label, 'value': $row.patientNo} 

“标签”是您希望在建议中显示的内容,“值”是您在选择建议后要在文本框中显示的内容。

必须使用current_date和year_of_birth字段在查询中或查询后格式化年龄。