Премахване на дублирани стойности

Knoppix_

Registered
Здравейте имам два <select>-а който имат данни който се дублират

например
<select id="first" name=first[]>
<select option = "1">1</option>
<select option = "2">2</option>
<select option = "3">3</option>
<select option = "4">4</option>
<select option = "5">5</option>
</select>
<select id="first" name=first[]>
<select option = "1">1</option>
<select option = "2">2</option>
<select option = "3">3</option>
<select option = "4">4</option>
<select option = "5">5</option>
</select>

мога ли с джава скрипт и как ако някой може да даде tutorial
да премахна стойноста която е избрана в първият
 
Най-лесно с jQuery:
Код:
        <script>
            $(document).ready(function () {
                var allSelects = $(document.body).find('select');
                $(allSelects[0]).val('');
            });
        </script>

Това изнамира всички селекти в документа и на първия слага стойност "нищо" или която си пожелаеш от валидните в самия селект.

Само да вметна, че селектите не са конструирани правилно, няма такъв HTML елемент:
Код:
<select option = "1">1</option>

трябва да е:
Код:
<option value="1">1</option>
 
Беше просто набързо написано иначе да за html кода знам, но по принцип ме интересува следното след като селектирам стойност 1 във вторият да не се появява например при него селектирам 1 а във вторият да почват от стойност 2,3 и тн
 
В случая не се ползват два еднакви селекта, а един, с атрибут mutiple.
Няма нужда от jQuery тогава, когато е вградено в html :?:

HTML:
<select multiple>

Демо: http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select_multiple
 
Това са падащи менюта изведени от ДБ т.е при редакция вадя два селекта или добавям ако искам да добавя още една стойност идеят ми е при извеждането на вторият селект да не мога да избера например Английски ако вече го има избран
 
Knoppix_ каза:
Това са падащи менюта изведени от ДБ т.е при редакция вадя два селекта или добавям ако искам да добавя още една стойност идеят ми е при извеждането на вторият селект да не мога да избера например Английски ако вече го има избран

Код:
        <select id="first" name=first[]>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
        <select id="second" name=second[]>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
        <script>
            $(document).ready(function () {
                var secondArray = [];
                $('#second option').each(function () {
                    secondArray.push({key: $(this).val(), value: $(this).text()});
                });
                $('#first').change(function () {
                    var dynamicVal = $(this).val();
                    
                    $("#second").find('option').remove();
                    $.each(secondArray, function (i, v) {
                        if(v.key != dynamicVal){
                            $('#second').append($('<option>', {value: v.key}).text(v.value));
                        }
                    });
                });
            });
        </script>

Успех. ;)
 
@mitkosoft

[js] $("#second").find('option').remove();[/js]

<=>

[js] $("#second option").remove();[/js]

Или е по-ефективно първото? Макар че щом се ползва jquery едва ли скоростта е от значение...
 
anonimen каза:
@mitkosoft

[js] $("#second").find('option').remove();[/js]

<=>

[js] $("#second option").remove();[/js]

Или е по-ефективно първото? Макар че щом се ползва jquery едва ли скоростта е от значение...

В общия случай - да, чрез селектор би трябвало да е теоретично по-бързо, избягва се викането на втора функция. Така или иначе аз предпочитам първия подход, тъй като синтаксиса е много по-четим. И двете опции са работещи, въпрос на предпочитания.
 

Горе