0

我试图制作这个小脚本,您只能在一系列下拉框中使用一次数字,所以.. [1] [3] [2] [2] [3] [1] [2] [1] [3 ] 一切都很好,但不是 [2] [2] [1] [1] [1] [3] ..

我想我已经完成了一半。

$("#left").focus(function () {
    // Store the current value on focus, before it changes
    previous = this.value;
}).change(function() {
    // Do soomething with the previous value after the change
    var num1 = $("#left option:selected").text();

    if ( $("#middle option:selected").text() == num1){
    $("#middle option:selected").text(previous)
    }

    if ( $("#right option:selected").text() == num1){
    $("#right option:selected").text(previous)
    }       
});

这是完整内容的链接:http: //jsfiddle.net/U3WSz/

它工作了一点,但我意识到下拉选项开始改变。如果你玩得够多,你会注意到我所看到的。

我还注意到我是如何重复大量代码的。让我知道是否有更好的方法来编写它。

4

2 回答 2

1

jsFiddle

像这样向选项添加值属性

<option value='2'>2</option>

JS:

   $("#left").focus(function () {
    // Store the current value on focus, before it changes
     previous = $(this).val();

    }).change(function () {
    // Do soomething with the previous value after the change
    var num1 = $("#left option:selected").val();

    if ($("#middle option:selected").val() == num1) {
        // $('body').append(previous);
        $("#middle").val(previous)
    }

    if ($("#right option:selected").val() === num1) {
        $("#right").val(previous);
    }
});
于 2013-03-28T22:28:39.290 回答
0

试试这个

$("#left").focus(function () {
    // Store the current value on focus, before it changes
    previous = this.value;
}).change(function() {
    // Do soomething with the previous value after the change
    var num1 = $("#left option:selected").text();

    if ( $("#middle option:selected").text() == num1){
    $("#middle option[value='"+previous+"']").attr('selected','selected')
    }

    if ( $("#right option:selected").text() == num1){
    $("#right option[value='"+previous+"']").attr('selected','selected')
    }       
});

此代码使选择的选项,在#middle#right选择框中,具有value等于previous变量的值。

于 2013-03-28T21:58:28.907 回答