首页 > 解决方案 > 无需用户单击/编辑文本即可更改输入状态

问题描述

我有一个带有地址查找器的表单,用户在邮政编码输入中输入一个地址,然后找到一个地址并选择他们的相关地址。这会在我的表单中填充 2 个输入字段,第一行地址和邮政编码。

该表单具有逐字段验证功能,并向用户提供反馈。

onchange=""
onblur=""
oninput=""

我有一个验证输入的函数。我希望在填充 2 个字段后立即执行此功能,但是这些选项中的每一个都要求用户至少先单击输入字段,或者删除一个字符/输入一个字符以调用该函数。填充输入字段后,我该怎么做才能应用该功能。

编辑:(检查和应用更改的脚本(地址相同))

   function BlurFunctionPost() {        
var data = $("#login-form").serialize();        
$.ajax({                
    type : 'POST',
    url  : 'postfieldchecker.php',
    data : data,
    beforeSend: function(){ 
    },
    success : function(response){                       
        if(response=="postok"){                                 
        document.getElementById("postcode").style.border = "2px solid green";

        } else {
        document.getElementById("postcode").style.border = "2px solid red";
        document.getElementById("posterror").className = 
        document.getElementById("posterror").className.replace(/\bhiddenclass\b/,'');
        }
    }
});
    return false;
}

这是内联 HTML:

<input class="hiddenclass" id="postcode" name="postcode" type="text" autocomplete="off" style= "border: 2px solid red;" oninput="BlurFunctionPost()>

标签: javascript

解决方案


由于您使用的是 jQuery,因此您可以使用change listener。据我了解,您正在通过 Javascript 设置输入值,因此在我的代码段中,我使用$(".hiddenclass").val("myValue");. 并且要触发验证,您应该trigger在值更改时调用。当用户在字段中键入并取消选择它时,更改侦听器也会触发。

$(".hiddenclass").change(function() {
  console.log( "Call validation now!" );
})

$(".hiddenclass").val("myValue");
$(".hiddenclass").trigger( "change" );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="hiddenclass" id="postcode" name="postcode" type="text" autocomplete="off" style= "border: 2px solid red;">


推荐阅读