jQuery-字段值和比较

jQuery - Field values and comparisons

本文关键字:比较 字段 jQuery-      更新时间:2024-02-04

我正在进行表单验证,并希望检查一些单选按钮值。默认情况下,不会选择任何值。每个问题有两个选项-是和否。

首先,我隐藏"警告信息",并在其中一个输入更改时进行检查。我希望发生的是,当所有选项都设置为no(值为N)时,错误消息将显示,否则将隐藏。我希望这样,如果任何选项被更改为"是",错误消息就会隐藏起来。这里发生的情况是,如果任何值更改为yes,则会显示错误消息。也许我太复杂了,这应该如何工作?

$('.cautionMessage').hide();
$('.weeeDetailsChange input').change(function () {
    var ownBrand = $('input[name="ownbrand"]:checked').val();
    var resell = $('input[name="resell"]:checked').val();
    var ImportBasis = $('input[name="importbasis"]:checked').val();
    var distributeEEE = $('input[name="distributeeee"]:checked').val();
    var exportEU = $('input[name="exporteu"]:checked').val();
    var distanceSelling = $('input[name="distanceselling"]:checked').val();
    if ( ownBrand && resell && ImportBasis && distributeEEE && exportEU && distanceSelling === 'Y' ) {
        $('.cautionMessage').show();
        console.log('Show');
    } else {
        $('.cautionMessage').hide();
        console.log('Hide');
    }
});

啊,我明白发生了什么——可能只是需要重新审视一下。

您目前正在做的是检查是否只有distanceSellingyes,而您应该检查所有值是否为no并在此基础上运行显示/隐藏,因为如果任何值为"yes",则您希望显示消息。

尝试以下操作:

$('.cautionMessage').hide();
$('.weeeDetailsChange input').change(function () {
    var ownBrand = $('input[name="ownbrand"]:checked').val();
    var resell = $('input[name="resell"]:checked').val();
    var ImportBasis = $('input[name="importbasis"]:checked').val();
    var distributeEEE = $('input[name="distributeeee"]:checked').val();
    var exportEU = $('input[name="exporteu"]:checked').val();
    var distanceSelling = $('input[name="distanceselling"]:checked').val();
    if (ownBrand == 'N' && resell == 'N' && ImportBasis == 'N' && distributeEEE == 'N' && exportEU == 'N' && distanceSelling == 'N' ) {
        // all values are 'N'
        $('.cautionMessage').show();
        console.log('Show');
    } else {
        // not all values are 'N'
        $('.cautionMessage').hide();
        console.log('Hide');
    }
});

我希望我能正确理解这一点。希望能有所帮助!

我做了一些更改。我使用属性checked prop('checked')而不是val(),因为它实际上返回了一个布尔值,所以我不需要将其与y或任何东西进行比较。然后,我翻转隐藏并显示只有在选中所有复选框时才隐藏警告消息的位置。点击此处查看示例

$('.caution').hide();
$(".weeeDetailsChange").change(function(){
var ownBrand =  $('input[name="ownbrand"]:checked').prop('checked')
var resell =$('input[name="resell"]:checked').prop('checked')
var ImportBasis = $('input[name="importbasis"]:checked').prop('checked')
var distributeEEE = $('input[name="distributeeee"]:checked').prop('checked')
var exportEU = $('input[name="exporteu"]:checked').prop('checked')
var distanceSelling = $('input[name="distanceselling"]:checked').prop('checked')
if ( ownBrand && resell && ImportBasis && distributeEEE && exportEU && distanceSelling) {
    $('.caution').hide();
    console.log('hide');
} else {
    $('.caution').show();
    console.log('show');
}
});