javascript - 无需用户单击/编辑文本即可更改输入状态
问题描述
我有一个带有地址查找器的表单,用户在邮政编码输入中输入一个地址,然后找到一个地址并选择他们的相关地址。这会在我的表单中填充 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()>
解决方案
由于您使用的是 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;">
推荐阅读
- r - 如何保存2次多项式线性模型的系数并稍后在R中进行预测?
- ruby-on-rails - 修复 TypeError:没有将 Arel::Nodes::SqlLiteral 隐式转换为 Integer
- excel-formula - 我可以在 Excel 中使用符合 countif 范围的动态标准吗?
- javascript - 无法读取未定义和未处理的承诺拒绝的属性“捕获”
- sql - 基于两列之间的差距的重复记录
- windows - 错误:在 Windows 10 中安装 GNU octave 包时“不允许捆绑包”
- javascript - 提交时停止计算器刷新页面
- firebase - 什么是我在 Firebase 中遇到的问题的最佳结构?
- python - 如何修复 erroos.rename() 错误 [WinError 123] 文件名、目录名或卷标语法不正确
- typescript - 如何使用 bcrypt 模块使用 NestJS 在 MongoDB 中保存加密密码