Javascript 重置g:空白时自动完成值
我在grails应用程序中使用richui g:autocomplete来处理一些时髦的自动完成字段(显然) 它们通常看起来是这样的:-Javascript 重置g:空白时自动完成值,javascript,grails,autocomplete,Javascript,Grails,Autocomplete,我在grails应用程序中使用richui g:autocomplete来处理一些时髦的自动完成字段(显然) 它们通常看起来是这样的:- <richui:autoComplete class="required" style="width:500px" name="autoLook[X].id" id="autoLook[X]" value="" action="${createLinkTo('dir': 'form/searchAJAX')}"
<richui:autoComplete class="required" style="width:500px" name="autoLook[X].id" id="autoLook[X]"
value="" action="${createLinkTo('dir': 'form/searchAJAX')}"
forceSelection="true" maxResultsDisplayed="20" minQueryLength="3" onItemSelect="updateHiddenInput(id, X, 'forms')" />
我想知道,当用户清空字段时,如何强制他们重新插入之前的值。我有一个函数,当用户选择一个值(updateHiddenInput)时调用它,但当字段被清空时不会触发
有没有办法实现这一点,或者我需要实现某种.change()javascript(对我来说这似乎有点垃圾)
我尝试添加以下内容,但似乎不起作用:-
$(function() {
$(document).on('change', 'input', function() {
var formID = $(this).attr("id");
if(formID.indexOf("auto")>-1){
alert("*" + $(this).val() +"*") //<-- this returns **
alert("**"+ $(this).attr("value") + "**") //<-- this returns the old value
var origVal= $(this).attr("value")
alert(origVal) <-- this alerts the original value
if($(this).val()==""){
$(this).val(origVal) //<-- this does nothing :(
}
}
});
});
$(函数(){
$(文档).on('change','input',function()){
var formID=$(this.attr(“id”);
if(formID.indexOf(“自动”)>-1){
警报(“*”+$(this).val()+“*”/forceSelection=“true”
强制您从下拉列表中提供的选项中选择值。您不能在字段中输入自定义值。删除forceSelection=“true”
,您的jQuery
可以正常工作,但它会接受任何值(不必要的数据)
这是我的密码
<richui:autoComplete class="required" name="name[${idx}]" id="uniqueId[${idx}]"
action="${createLinkTo('dir': 'oauthCallBack/test')}" onItemSelect="updateHiddenInput(id, this)"
value="${vr}" maxResultsDisplayed="20" minQueryLength="3"/>
<script>
$(function () {
$(document).on('change', 'input', function () {
var formID = $(this).attr("id");
if (formID.indexOf("auto")) {
var origVal = $(this).attr("value");
if (!$(this).val()) {
$(this).val(origVal);
}
}
});
});
</script>
$(函数(){
$(文档).on('change','input',function(){
var formID=$(this.attr(“id”);
if(formID.indexOf(“自动”)){
var origVal=$(this.attr(“值”);
if(!$(this.val()){
$(this).val(origVal);
}
}
});
});
我尝试不使用forceSelect,但我的jquery仍然不起作用,我现在要放弃这个想法。为了避免这个想法,我将启动某种编辑模式,以便用户需要故意单击一个按钮来编辑该值,以阻止他们意外地清除它