Javascript 如何使函数在每次输入时生效?
我试图比较两个输入框的值,然后在两个框的值不相等时更改框的边框。我遇到的问题是在if语句中,我比较输入框的两个值,它永远不会比较相等,除非在开始时它们都是空的,即使它们是空的。我通过自身运行函数,我在函数上运行setTimeout,所以它每500毫秒检查一次。任何帮助都将不胜感激,我很可能会在早上醒来时看到答案Javascript 如何使函数在每次输入时生效?,javascript,jquery,if-statement,frontend,Javascript,Jquery,If Statement,Frontend,我试图比较两个输入框的值,然后在两个框的值不相等时更改框的边框。我遇到的问题是在if语句中,我比较输入框的两个值,它永远不会比较相等,除非在开始时它们都是空的,即使它们是空的。我通过自身运行函数,我在函数上运行setTimeout,所以它每500毫秒检查一次。任何帮助都将不胜感激,我很可能会在早上醒来时看到答案 var passContext = $('#pass').val(); var pass2Context = $('#pass2').val(); function che
var passContext = $('#pass').val();
var pass2Context = $('#pass2').val();
function checkMatch() {
if (passContext == pass2Context) {
if($('#passCont').css({borderWidth: 1})) {
$('#passCont').animate({
borderWidth: 0
}, 400)
}
//Add button animation
} else {
$('#passCont').css({
border: '0 solid red'
}).animate({
borderWidth: 1
}, 400)
setTimeout(checkMatch, 2000);
}
}
checkMatch();
完整代码:我知道我必须改变什么。我的变量passContext和pass2Context必须在我的checkMatch函数中。这就是您所期望的。在我的代码中获取逻辑。观看现场演示
.stl{
边框:3倍纯色橙色;
}
第一:
第二:
$(文档).ready(函数(){
$(“.myinput”).on('change keyup keydown',function()){
var theid=$(this.attr('id');
如果(theid==“myone”)
{
//警报(theid);
var valone=$(“#myone”).val();
var valtwo=$(“#mytwo”).val();
if(valone!=valtwo)
{
$(#mytwo”).addClass(“stl”);
$(“#myone”).removeClass(“stl”);
}
其他的
{
$(“#myone”).removeClass(“stl”);
$(“#mytwo”).removeClass(“stl”);
}
}
其他的
{
//警报(theid);
var valone=$(“#myone”).val();
var valtwo=$(“#mytwo”).val();
if(valtwo!=valone)
{
//警惕(“不平等”);
$(“#myone”).addClass(“stl”);
$(“#mytwo”).removeClass(“stl”);
}
其他的
{
$(“#myone”).removeClass(“stl”);
$(“#mytwo”).removeClass(“stl”);
}
}
});
});
您可以使用输入事件或键控事件
没有jquery:
var passContext = document.getElementById('pass'),
pass2Context = document.getElementById('pass2');
function checkMatch() {
...
}
passContext.addEventListener('input', checkMatch, false);
pass2Context.addEventListener('input', checkMatch, false);
passContext.addEventListener('keyup', checkMatch, false);
pass2Context.addEventListener('keyup', checkMatch, false);
// The third param on the addEventListener function is to disable the bubbling
使用JQuery:
function checkMatch() {
...
}
$('#pass, #pass2').on('keyup input', checkMatch);
但在您提供的小提琴中,您使用的是
change keyup-paste
events。。您的问题具有误导性和迷惑性…在两个输入上绑定按键
按键
功能未定义,因此在附加的事件中添加输入
事件…我已修复它。我将两个变量passContext和pass2Context放在myCheck函数中,它现在可以工作了。谢谢你们的支持。