0

我设置了一个错误,如果用户没有选择他们是否是男性女性。错误信息应该是,请选择您的性别。我没有收到该消息,如果他们选择了性别,我会收到常规消息,但我会在阅读文本中收到它。我唯一的红色文本是错误的,所以我不明白发生了什么。我的代码有 100 行长,所以我将只发布带有错误消息的部分,然后发布一个小提琴。

if (isNaN(total)) {
    msg = 'Input three numbers, please...';

} else if ($genderRadio.filter(':checked').length === 0) {
    msg = 'Please select your gender....';    
} else {
    $output.removeClass('error');
}

http://jsfiddle.net/7xM2f/46/

4

3 回答 3

1

这是因为total底部的条件,它覆盖了错误消息

你需要类似的东西

    if(!msg){     
        if (total < 10) {
            msg = "should be higher...";
        } else if (total > 20) {
            msg = "super good ...";
        } else {
            msg = "not bad.";
        }
    }

演示:小提琴

于 2013-07-08T05:35:56.757 回答
0

请检查您的代码

 var $genderRadio = $('input[name=gender]'); 

请将此代码用于条件:

else if ($('input[name=gender]:checked').val()==undefined)
于 2013-07-08T05:36:00.203 回答
0

您应该使用 else-if so 并根据优先级对顺序进行排序,以便最先出现的条件首先出现。

尝试这个:

    if (isNaN(total)) {
        msg = 'Input three numbers, please...';    
    } else if ($genderRadio.filter(':checked').length === 0) {
        msg = 'Please select your gender....';
    } else if {
        $output.removeClass('error');
    } else if (total < 10) {
            msg = "bad need a lot of work...";
    } else if (total > 20) {
        msg = "super super good...";
    } else {
        msg = "your with in the average.";
    }

    $output.text(msg);
    $output1.text(msg1);
于 2013-07-08T05:48:37.270 回答