javascript - 如何将列表的功能与文本框相结合

标签 javascript php jquery jquery-ui cakephp

现在我有一个在 cakephp 中创建的表单,它工作正常但我遇到的问题是我们运行数据库中类型的查询并且存在一些用户拼写错误所以我想有一个列表,其中包含您可以从中选择的最常见类型,但如果它不在列表中,您仍然可以输入不同的内容。

我发现这个 jquery 自动完成组合框非常有用,但我无法输入不在列表中的内容。 http://jqueryui.com/autocomplete/#combobox

我不知道你是否需要看我的表格,但无论如何我都会发布

<?php

echo $this->Form->create( 'Credential', array( 'class' => 'popup_form' ) );
echo $this->Form->hidden( 'account_id', array( 'value' => $account_id ) );
echo $this->Form->hidden( 'user_id', array( 'value' => $currentUser['User']['id'] ) );
echo $this->Form->hidden( 'created', array( 'value' => date("Y-m-d H:i:s") ) );
echo $this->Form->hidden( 'modified', array( 'value' => date("Y-m-d H:i:s") ) );
echo '<br/><br/>';
echo $this->Form->input( 'type', array( 'div' => false, 'label' => false, 'placeholder' => 'Account Type' ) );
echo '<br/><br/>';
echo $this->Form->input( 'url', array( 'div' => false, 'label' => false, 'placeholder' => 'URL' ) );
echo '<br/><br/>';
echo $this->Form->input( 'username', array( 'div' => false, 'label' => false, 'placeholder' => 'Username' ) );
echo '<br/><br/>';
echo $this->Form->input( 'password', array( 'div' => false, 'label' => false, 'placeholder' => 'Password' ) );
echo '<br/><br/>';
echo $this->Js->submit( 'Create Credential', array( 'div' => false, 'class' => 'button white medium', 'before' => 'return submitForm();', 'success' => "$('#qtip-add_account_credential').hide();", 'complete' => 'loadTasks();' ) );
echo '<br/><br/>';
echo $this->Form->end();
?>

<script type="text/javascript">
    function submitForm(){
        var x = document.getElementById("CredentialType").value;
        if (x == null || x == "") {
            alert("Account Type must be filled out");
            return false;
        }
        else {
            return true;
        }
    }
</script>

我是一名后端开发人员,希望能在前端获得任何帮助。谢谢。

最佳答案

您要搜索的是数据列表(HTML5 中的新功能):

http://www.w3schools.com/tags/tag_datalist.asp

它提供了一个带有预定义选项列表的表单输入,一旦用户的输入与其中一个条目匹配,它就会出现。

但是:Safari 似乎不支持

在你的情况下它看起来像这样:

<input name="type" list="AccountTypes" placeholder="Account Type">

<datalist id="AccountTypes">
   <option value="admin">
   <option value="user">
   <option value="something else">
</datalist>

关于javascript - 如何将列表的功能与文本框相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32872544/

相关文章:

javascript - 弹出窗口在关闭时将数据返回给父级

javascript - 使用 jQuery 重定向

php - 我可以在 PHP 中混合使用 MySQL API 吗?

javascript - 如何在 PHP 中实现 JS 风格的按位左移运算符?

javascript - 如何使用 ReactJS、Redux 和 ES2015 将 onChange 回调正确绑定(bind)到 'this'?

javascript - 即使在发布后,Spring Boot 字段也始终为空

PHPUnit , PEAR 升级错误

javascript - 当我的按钮悬停时,mouseleave 并不总是触发

javascript - 如何计算innerHTML内的变量?

javascript - Fabric.js 偏移解决方案