Skip to main content
 首页 » 编程设计

jquery之Twitter 的 bootstrap typeahead之如何仅允许列表中的值

2026年10月07日3zhenyulu

有没有办法允许用户仅使用 Twitter 的 Bootstrap 提前输入从预定义列表中选择值?理想情况下,每个文本值都应该替换为某个数值(如何使用 select 实现这一点)。

例如:

var regionsList = ["value1", "value2", "value3"]; 
var regionsCodesList = [11, 12, 77]; 
$('#region').typeahead({ source: regionsList }); 

用户应该只能输入值1、值2或值3,仅此而已。提交表单后,应相应地传递 11、12、77 等值。

更新。我创建了自定义验证方法:

$.validator.addMethod("validRegion", function (value, element, param) { 
  return !(param.indexOf(value) == -1); 
}, "Please start to input the region and then choose the value from the list"); 

regionsList 作为 param 传递。但它效果不佳 - 如果用户用鼠标从列表中选择值,则不会隐藏错误消息。

请您参考如下方法:

尝试更新方法:

$('#region').typeahead({  
   // ....   
   "updater" : function bla(item) { 
       $('#region').val(item); 
       $("#myForm").validate().element("#region"); 
       return item;         } 
   }  
}