我是javascript的新手,我无法返回函数的布尔值..我正在验证文本框是否为空,如果空的帮助请返回false?
validateForm : function() {
$('.requiredField :input').each(function(){
if ('input[type=text]'){
if($(this).val().length === 0){
$(this).addClass('warning');
var errorMsg = $('<br /><span>Please Fill in the TextBox</span>').addClass('warning');
errorMsg.insertAfter(this);
$(errorMsg).css('color','red');
$('.warning').css('border-color','red');
//$(this).focus(function(){
//$(this).removeClass('warning');
//$(this).parent().children('span').remove();
//$(this).parent().children('br').remove();
//});
return false;
}
else
return true;
}
});
},
Form.validateForm(); // call to the function
答案 0 :(得分:2)
您return
来自 .each()
。这不会使您的函数返回值。
在.each()
循环中,return false;
就像使用break;
一样,return true;
就像使用continue;
。
您需要在.each()
声明 之外的变量,在循环中设置其值,然后在之后将其返回循环。
答案 1 :(得分:0)
检查此行
if ('input[type=text]'){
应该是
if($('input[type=text]')){
答案 2 :(得分:0)
你可以试试这个:
$('.requiredField :input').each(function(){
var i=$(this).val();
if(i == '' || i == null)
{
//execute your codes
return false;
}else{
return true;
}
});
答案 3 :(得分:0)
您似乎正在尝试编写插件?请尝试以下代码:
(function($) {
$.fn.validateForm = function()
{
var formID = $(this).attr('id');
$('#'+ formID +' input[type=submit]').click(function(e)
{
e.preventDefault();
$('input[type=text]').each(function(){
if($(this).val().length === 0){
$(this).addClass('warning');
var errorMsg = $('<span>Please Fill in the TextBox</span>').addClass('warning');
errorMsg.insertAfter(this);
$(errorMsg).css('color','red');
$('.warning').css('border-color','red');
return false;
}else{
return true;
}
});
});
};
})(jQuery);
答案 4 :(得分:0)
正如@RocketHazmat所提到的,你的函数需要聚合内部循环的结果并有一个退出点以验证(并添加css classes / html元素)每个输入。< / p>
你需要做这样的事情:
validateForm : function () {
var invalidInputs = [];
// only test the type='text' inputs
$('.requiredField :input[type="text"]').each(function () {
// if there is no value
if ($(this).val() == undefined || $(this).val().length == 0) {
$(this).addClass('warning');
var errorMsg = $('<br /><span>Please Fill in the TextBox</span>').addClass('warning');
errorMsg.insertAfter(this);
$(errorMsg).css('color','red');
$('.warning').css('border-color','red');
// add the invalid input to an array
invalidInputs.push($(this));
}
});
// The form is only valid for no invalid inputs were found.
return invalidInputs.length == 0;
}