jquery autocomplete组合框获取当前输入值

时间:2014-03-10 17:37:58

标签: jquery autocomplete combobox

是否可以获取用户输入的当前输入值?

问题是如果组合框没有最后关注,可以单击输入提交表单,我需要验证用户写的内容,即使他没有在下拉列表中选择。

1 个答案:

答案 0 :(得分:0)

是的,只需抓取搜索字段val()元素的<input>即可。

在下面的示例中,我们使用keyup作为事件来检查用户是否按下了Enter键,并将其用作触发器来执行您想要的操作:抓取搜索字段的当前内容。

如果该字段已被清空,那么您可以使用其他一些触发器来获取该字段的内容(请记住,它只是一个普通的<input>标记)并且可能将其存储到隐藏的输入字段中以确保安全保持。然后,当您准备好时,读取您在该隐藏输入字段中存储的值,就像我们读取下面示例中的非隐藏输入字段一样。

要阅读的字段:<input id="tags">

阅读方法:strSrxField = $("#tags").val();

jsFiddle Demo

示例:

<强> HTML:

<div class="ui-widget">
  <label for="tags">Tags: </label>
  <input id="tags">
</div>

<强>的jQuery / JavaScript的:

var availableTags = [
    "ActionScript",
    "AppleScript",
    "Asp",
    "BASIC",
    "C",
    "C++",
    "Clojure",
    "COBOL",
    "ColdFusion",
    "Erlang",
    "Fortran",
    "Groovy",
    "Haskell",
    "Java",
    "JavaScript",
    "Lisp",
    "Perl",
    "PHP",
    "Python",
    "Ruby",
    "Scala",
    "Scheme"
];

$( "#tags" ).autocomplete({
    source: availableTags
});

$('#tags').keyup(function(e) {
    var keycode = (e.keyCode ? e.keyCode : e.which);
    if(keycode == '13'){
        var srx = $('#tags').val(); //in this fn, you could also use $(this).val()
        alert('You entered: ' + srx);
    }
});