如何解决为什么一种方法有效而另一种方法无效?
if(chk) {
document.getElementById(messageBox).innerHTML="update do be done";
document.getElementById(messageBox).style.color="green";
} else {
document.getElementById(messageBox).innerHTML="no update";
document.getElementById(messageBox).style.color="red";
};
});
chk 是一个来自这里的变量:
var chk = ((lenta >= 1) && (lenta <= 5) && (str.search(/[0-9¬!\"£\$%^\&\*\(\)_\-+\=\{\}\[\]#~@\';\:\/\?>\.<\,\\\ |]/) <= -1));
基本上,如果 chk 为真,则表示输入正确。 在这种情况下,输入只允许输入 1 到 5 之间的字母和长度。
脚本工作正常,但如果不是“
document.getElementById(messageBox).innerHTML="update do be done";
document.getElementById(messageBox).style.color="green";
”我补充说 "
$.ajax({
type: 'POST',data: ({quoteprefix : str}),url: 'liveupdate/firstsetup.PHP',success: function(data) {
document.getElementById(messageBox).innerHTML=" <?PHP echo pw('updatedone'); ?>. "+data+"";
document.getElementById(messageBox).style.color="green";
}
});
"
无论输入的值如何,脚本都会更新 示例:如果我输入 AB,它会更新 AB。 如果我输入 AB123,它会更新“AB”
完整的脚本在这里:
$(document).ready(function() {
var ffind = "#quoteprefix"; //input value id
$(ffind).on("change paste keyup",function() {
var messageBox = "qquoteprefix"; //message Box
var lenta = $(this).val().length;
var str = $(this).val();
var chk = ((lenta >= 1) && (lenta <= 5) && (str.search(/[0-9¬!\"£\$%^\&\*\(\)_\-+\=\{\}\[\]#~@\';\:\/\?>\.<\,\\\ |]/) <= -1));
if (chk) {
$(this).removeClass("is-invalid");
$(this).addClass("is-valid");
} else {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
};
});
$(ffind).on("focusout",function() {
if(chk) {
document.getElementById(messageBox).innerHTML="update de facut";
document.getElementById(messageBox).style.color="green";
} else {
document.getElementById(messageBox).innerHTML="nu face update" +chk;
document.getElementById(messageBox).style.color="red";
};
});
});
更新: 试过了,同样的结果:
$(document).ready(function() {
var ffind = "#quoteprefix";
$(ffind).on("change paste keyup",function() {
var messageBox = "qquoteprefix";
var lenta = $(this).val().length;
var str = $(this).val();
var chk=false;
var chk = ((lenta >= 1) && (lenta <= 5) && (str.search(/[0-9¬!\"£\$%^\&\*\(\)_\-+\=\{\}\[\]#~@\';\:\/\?>\.<\,\\\ |]/) <= -1));
if (chk) {
$(this).removeClass("is-invalid");
$(this).addClass("is-valid");
$(this).focusout( function() {
$.ajax({
type: 'POST',data: ({quoteprefix : $(this).val()}),success: function(data) {
document.getElementById(messageBox).innerHTML=" <?PHP echo pw('updatedone'); ?>."+chk;
document.getElementById(messageBox).style.color="green";
}
});
});
} else {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
};
});
});
为什么? 有人可以帮我吗
解决方法
所以,我发现这个工作:
$(document).ready(function() {
var ffind = "#<?php echo $field; ?>";
var messagebox = "<?php echo $field[0].$field; ?>";
$(ffind).on("change paste keyup",function() {
var notallowedchars = /[0-9¬!\"£\$%^\&\*\(\)_\-+\=\{\}\[\]#~@\';\:\/\?>\.<\,\\\ |]/;
var chk = (($(this).val().length >= 1) &&
($(this).val().length <= 5) &&
($(this).val().search(notallowedchars) <= -1));
if (chk) {
$(this).removeClass("is-invalid");
$(this).addClass("is-valid");
} else {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
};
$(this).focusout( function() {
var chk = (($(this).val().length >= 1) &&
($(this).val().length <= 5) &&
($(this).val().search(notallowedchars) <= -1));
if (chk) {
$.ajax({
type: 'POST',data: ({quoteprefix : $(this).val()}),url: 'liveupdate/firstsetup.php',success: function(data) {
document.getElementById(messagebox).innerHTML=" <?php echo pw('updatedone'); ?>.";
document.getElementById(messagebox).style.color="green";
}
});
} else {
document.getElementById(messagebox).innerHTML="<?php echo pw('noupdatedone'); ?>";
document.getElementById(messagebox).style.color="red";
}
});
});
});
显然在“focusout”函数中,我需要再次进行所有检查。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。