我有一个带有typeahead的tagsinput字段,一切正常。我可以输入一个值,如果有任何预先输出结果,我可以选择并按回车键将其添加到标签输入字段。
但是,当我输入不在先行列表中的标签值并按Enter键时,表单会被提交。我想阻止这种行为,并尝试了一些方法,但似乎无法让它发挥作用。这就是我现在所拥有的:
HTML:
<input id="testInput" name="testInput" type="text" class="form-control" rows="3" value="Test1,Test2, test3, test4, ThisIsABigVeryBigTest" autocomplete="off" />
JS:
<script type="text/javascript">
$(document).ready(function() {
$('#testInput').tagsinput({
typeahead: {
source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo'],
afterSelect: function() {
this.$element[0].value = '';
}
}
});
$('#testInput input').on('keypress', function(e){
if (e.keyCode == 13){
e.keyCode = 188;
e.preventDefault();
};
});
});
</script>
我还试过一些JS来阻止输入提交。在我可以成功阻止表单在Enter上提交的每种情况下,当用户按Enter键时,输入的文本也不会转换为标记时,它也会中断标签输入。
感谢您的帮助!