-1

我有一个带有文本字段和下拉列表的表单。我正在尝试验证下拉列表更改并提交表单的下拉列表。

var flag = false;
$('#submit_form .required').change(function (e) {
    var input = $(this);
    input.next('ul.error_text').remove();
    input.removeClass('highlight');
    if (!input.val()) {
        input.removeClass('green');
        input.addClass('highlight');
        var $msg = input.attr('title');
        input.after('<ul class="error_text"><li>' + $msg + '</li></ul>');
        flag = true;
    } else {
        if (flag == true) {
            input.addClass('green');
        } else {
            input.next('ul.error_text').remove();
            input.removeClass('highlight');
            input.removeClass('green');
        }
    }
});
var flag1 = true;
$('#submit_form .required').filter(':visible').each(function () {
    var input = $(this);
    input.next('ul.error_text').remove();
    input.removeClass('highlight');
    if (!input.val()) {
        input.removeClass('green');
        input.addClass('highlight');
        var $msg = input.attr('title');
        input.after('<ul class="error_text"><li>' + $msg + '</li></ul>');
        flag = true;
        flag1 = false;
    }
});
return flag1;

在提交表单时,如果在下拉列表中未选择任何值,则它应显示为红色并显示所需的文本。在选择值时,下拉菜单应变为绿色。现在,如果未选择任何值,则会出现红色突出显示,但下方的必填文本不会出现。此外,如果我选择一个值,红色突出显示不会变成绿色。我觉得我在这里遗漏了一些东西..有人可以帮我弄清楚吗?

4

2 回答 2

0

这在任何函数之外(最后一行),它应该在函数中:

return flag1;

在这里进行了修改:

var flag = false;
$('#submit_form .required').change(function (e) {
    var input = $(this);
    input.next('ul.error_text').remove();
    input.removeClass('highlight');
    if (!input.val()) {
        input.removeClass('green');
        input.addClass('highlight');
        var $msg = input.attr('title');
        input.after('<ul class="error_text"><li>' + $msg + '</li></ul>');
        flag = true;
    } else {
        if (flag == true) {
            input.addClass('green');
        } else {
            input.next('ul.error_text').remove();
            input.removeClass('highlight');
            input.removeClass('green');
        }
    }
});
var flag1 = true;
$('#submit_form .required').filter(':visible').each(function () {
    var input = $(this);
    input.next('ul.error_text').remove();
    input.removeClass('highlight');
    if (!input.val()) {
        input.removeClass('green');
        input.addClass('highlight');
        var $msg = input.attr('title');
        input.after('<ul class="error_text"><li>' + $msg + '</li></ul>');
        flag = true;
        flag1 = false;
    }
    return flag1;
});
于 2013-11-08T07:25:26.680 回答
0

您必须改为放置return flag1;在提交功能中:

$('#submit_form').submit(function () {
    var flag1 = true;
    $('#submit_form .required').filter(':visible').each(function () {
       var input = $(this);
       input.next('ul.error_text').remove();
       input.removeClass('highlight');
       if (!input.val()) {
          input.removeClass('green');
          input.addClass('highlight');
          var $msg = input.attr('title');
          input.after('<ul class="error_text"><li>' + $msg + '</li></ul>');
          flag = true;
          flag1 = false;
       }
   });
   return flag1; //<----------place here...
});  //<----------------- end of submit

小提琴尝试

于 2013-11-08T07:36:33.627 回答