[英]what is wrong in this code for validation of controls?
我使用jquery来验证控件:
function RegisterClient() {
var bookname = true; var edition = true; var author = true; var price = true; var imgType = true; var imgSize = true;
if (j('#txt_book_name').val() === null) { //1
j('#alertBookName').removeClass('hidden');
bookname = false;
}
if (j('#txt_edition').val() === null) { //2
j('#alertEditionbook').removeClass('hidden'); edition = false;
}
if (j('#txt_author').val() === null) { //3
j('#alertAuthor').removeClass('hidden'); author = false;
}
if (j('#txt_price').val() === null) { //4
j('#alertPrice').removeClass('hidden'); price = false;
}
var fileType = j("#ContentPlaceHolder1_FileUpload1").val().split('.').pop().toLowerCase();
if (j('#ContentPlaceHolder1_FileUpload1').val() != "" && j.inArray(fileType, ['gif', 'png', 'jpg']) == -1)
{ j('#alertImgType').removeClass('hidden'); imgType = false; }
if (j('#ContentPlaceHolder1_FileUpload1').val() != null) {
var sizeImg = j("#ContentPlaceHolder1_FileUpload1")[0].files[0].size/1024;
if (sizeImg > 25) { j('#alertImgSize').removeClass('hidden'); imgSize = false; }
}
if (bookname && edition && author && price && imgType && imgSize) __doPostBack('ctl00$ContentPlaceHolder1$Button1', '');
}
在第1,2,3,4节中, (j('#txt_...').val() === null)
语句无法正常工作。
(var sizeImg = j("#ContentPlaceHolder1_FileUpload1")[0].files[0].size/1024;)
语句出错,在使用Firebug时显示。 我可以使用Alert()
显示j("#ContentPlaceHolder1_FileUpload1")[0].files[0].size
,但是有错误。
关于第一个问题:
唯一可能的是,如果条件在用户输入任何内容之前被执行。
我做了一个小提琴来解释它:
https://jsfiddle.net/tr91Lw7y/
运行此命令,您将立即看到“ johndoe”。
但是,如果运行此命令:
每次执行此操作时,您都会看到空白。
如果您无法调整流量,则有一种解决方案:
$("#txt_book_name").keyup(function(){
if($(this).val() === null) {
// Conditions
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.