2013-03-28 169 views
0

我試圖讓這個小腳本在一系列下拉框中只能使用一次數字,所以... [2] [3 ] [1] [2] [1] [3] 所有都很好,但不 [2] [2] [1] [1] [1] [3] ..在jquery中選擇下拉列表中的特定選項

我想有一半完成。

$("#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/

其作品一點點,但我意識到,在下拉選項就開始發生變化。如果你充分利用它,你會注意到我所看到的。

我也注意到我是如何重複很多代碼的。讓我知道是否有更好的方法來寫它。

+0

你查什麼'的.text()'呢? – Ian

回答

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); 
    } 
}); 
+0

謝謝。這解決了它! – Matt

+0

歡迎您! –

+0

嘿......我不知道爲什麼,但玩過之後,它似乎陷入困境。你的代碼是有道理的,但似乎並不是一直運行它。試着玩一個盒子。你會開始看到它自己重複。 – Matt

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變量的值。

+0

只需使用'$(「#right」).val(前一個);' – Ian

+0

其實我剛剛意識到OP不想根據期權價值進行評估。 '

+0

啊,我現在明白了。 – Ian

相關問題