Javascript 自动完成仅允许来自数据库的选项值
如何仅允许输入数据列表选项的选项值。我看到一些基于javascript变量允许值的脚本,但如果选项值来自数据库,该怎么办?如何在下面的脚本上更改Javascript 自动完成仅允许来自数据库的选项值,javascript,php,jquery,Javascript,Php,Jquery,如何仅允许输入数据列表选项的选项值。我看到一些基于javascript变量允许值的脚本,但如果选项值来自数据库,该怎么办?如何在下面的脚本上更改有效选项的值取决于选项列表中可用的值?在我的下拉列表中,下面的主要内容是使用ajax将值发送到input list='languages' 如图所示,若我选择供应商圆珠笔、闪存铅笔等,则只允许输入 Drop1 <?php $combo = $mysqli->query("SELECT * FROM category GROUP B
有效选项的值取决于选项列表中可用的值?在我的下拉列表中,下面的主要内容是使用ajax将值发送到input list='languages'
如图所示,若我选择供应商圆珠笔、闪存铅笔等,则只允许输入
Drop1
<?php
$combo = $mysqli->query("SELECT * FROM category GROUP BY cat_code ORDER BY id");
$option = '';
while($row = $combo->fetch_assoc())
{
$option .= '<option value = "'.$row['cat_code'].'">'.$row['category'].'</option>';
}
?>
<select id="main" name="main">
<option value="" disabled="disabled" selected="selected">Choose</option>
<?php echo $option; ?>
</select>
<input list="languages" id="list">
<datalist id="languages">
<option value=""></option>
</datalist>
<input type="submit" name="submit" value="Submit"/>
<script type="text/javascript">
$('#main').change(function(){
$.ajax({
url : 'getajax.php',
data :{mainlist_id : $(this).val()},
dataType:'html',
type:'POST',
success:function(data){
$('#languages').html(data);
}
});
if ($(this).val() != '') {
$("#list").val('');
} else {
//here you can specify what to do if the value is NOT
}
});
</script>
<script>
var validOptions = ["Bold", "Normal", "Default", "100", "200"]
previousValue = "";
$('#list').autocomplete({
autoFocus: true,
source: validOptions
}).keyup(function() {
var isValid = false;
for (i in validOptions) {
if (validOptions[i].toLowerCase().match(this.value.toLowerCase())) {
isValid = true;
}
}
if (!isValid) {
this.value = previousValue
} else {
previousValue = this.value;
}
});
</script>
Drop1
选择
$('#main').change(function(){
$.ajax({
url:'getajax.php',
数据:{mainlist_id:$(this.val()},
数据类型:'html',
类型:'POST',
成功:功能(数据){
$(“#语言”).html(数据);
}
});
if($(this.val()!=“”){
$(“#列表”).val(“”);
}否则{
//在这里,您可以指定如果该值不是
}
});
var validOptions=[“粗体”、“正常”、“默认”、“100”、“200”]
先前的值=”;
$(“#列表”)。自动完成({
自动对焦:对,
资料来源:有效期
}).keyup(函数(){
var isValid=false;
对于(有效期内的i){
if(validOptions[i].toLowerCase().match(this.value.toLowerCase())){
isValid=true;
}
}
如果(!isValid){
this.value=以前的值
}否则{
previousValue=this.value;
}
});
您可以使用远程数据源自动完成
您可以绑定响应事件以更新validOptions数组