Submiting values

Submiting values

本文关键字:values Submiting      更新时间:2023-09-26

我想用xy结果创建表单

例如,单独检查"A"

可能会产生结果 1,而如果同时检查"A"和"B",则答案是结果 2。D,E,A 可能给出结果 3,而 B,E,A 给出结果 2。希望你明白这一点。

<form action="">
    <input type="checkbox" name="options" value="A" />Choice A<br />
    <input type="checkbox" name="options" value="B" />Choice B<br />
    <input type="checkbox" name="options" value="C" />Choice C<br />
    <input type="checkbox" name="options" value="D" />Choice D<br />
    <input type="checkbox" name="options" value="E" />Choice E<br />   
    <br />
    <input type="submit" value="answerswer">

jquery将是这样的。

$(':checkbox').click(function () {
var value = $(this).val();
if ($(this).val(["A","B","C"]).is(':checked'))
    $('.result1').show(value);
else
    $('.result1').hide(value);
if ($(this).val(["A","D","E"]).is(':checked'))
    $('.result2').show(value);
else
    $('.result2').hide(value);

这行不通,所以如果你能帮助我,那就太好了!

所以,给定A,B和C,你想做点什么。这与 A、B 和 E 不同,后者可能会做其他事情。我想出了这个:

$(':checkbox').click(function () {
    var checkedBoxes = $(':checked');
    var values = new Array();
    $.each(checkedBoxes, function(index, value) {
        var checkboxValue = $(value).val();
        values.push(checkboxValue);
    });
    if (containsOnly(values, ['A', 'B', 'C'])) {
        alert('Hi');
    }
    if (containsOnly(values, ['A', 'D', 'E'])) {
        alert('Bye');
    }
});
function containsOnly(needles, haystack){ 
    if (needles.length !== haystack.length) {
        return false;
    }
    var result = _.intersection(needles, haystack).length === haystack.length;
    return result;
}

因此,它的作用是抓取所有选中的复选框,然后获取其中包含的值。一旦它有了这些值,它就会使用 UnderscoreJS (underscorejs.org) 的交集来比较它们。这意味着我们可以检查是否(并且仅当)所有值都包含在数组中。

一旦检查完成,如果它满足条件,它就会做一些事情。

另外,为什么要给 js 加下划线?它为 javascript 提供了许多非常有用的类似 LINQ 的表达式,并且节省了您重新发明轮子的时间。对于迭代器函数来说绝对值得,因为它可以节省您的时间和精力。

和往常一样,小提琴:http://jsfiddle.net/KyleMuir/bUdra/5/

希望这有帮助