2016-07-30 55 views
2
  1. 當用戶單擊「+」按鈕時,應添加一個帶有下拉和輸入字段的行。我想將該輸入字段名稱作爲每行的下拉值。添加下拉值的新輸入字段

  2. 如果我在第一個下拉列表中選擇「臉譜」,它不應該顯示在第二個下拉列表中。只需選擇值不應顯示在下一個下拉列表中。我完成了這部分。但我的問題是如果我在第二個下拉列表中選擇「Google」,在第三個下拉列表中選擇「Yahoo」。並再次如果我點擊第一或第二下拉,它不應該再次顯示「雅虎」。

請在代碼存在的地方找到下面的鏈接並修復它。

http://jsfiddle.net/mhmdsohail/v9uem13u/5/

$(document.body).on('click', '.add-more', function (e) { 
    var lastSelect = $("select").last().find('option'); 
    var toAppend = ''; 
    if (lastSelect.length > 1) { 
     toAppend += '<select name="select[]">'; 
     $.each(lastSelect, function (i, v) { 
      if ($(this).text() !== $("select:last option:selected").text()) 
       toAppend += '<option value="' + $(this).val() + '">' + $(this).text() + '</option>'; 
     }); 
     toAppend += '</select>'; 
     toAppend += '<input type="text" name=""><br>'; 
    } 
    $(".append-select").append(toAppend); 
}); 
+0

在此處張貼您的HTML代碼 –

+0

@MayankPandey請檢查http://jsfiddle.net/mhmdsohail/v9uem13u/5/ – acmsohail

+0

您應該在代碼中包含選擇更改處理。這可以幫助你減少很多工作。我還建議使用數組來指定可能的選項。這樣,在選擇更改期間,您不必分析DOM,例如, var options = [{name:「Facebook」,inUse = true},{...},...] – Wolfgang

回答

3

這個JavaScript代碼做你問什麼:

(從我的理解這將刪除選定的所有電流dropdowns(和將來的選件,以及)並且下一個輸入字段將包含屬性name,其值等於最後選擇的dropdown選項)

$(document.body).on('click', '.add-more', function (e) { 
       var lastSelect = $("select").last().find('option'); 
       var selectedOption = $('select:last').val(); 
       var toAppend = ''; 
       if (lastSelect.length > 1) { 
        toAppend += '<select name="select[]">'; 
        $.each(lastSelect, function (i, v) { 
         if ($(this).text() !== $("select:last option:selected").text()) 
          toAppend += '<option value="' + $(this).val() + '">' + $(this).text() + '</option>'; 
        }); 
        toAppend += '</select>'; 
        toAppend += '<input type="text" name="' + selectedOption + '"><br>'; 
       } 
       $(".append-select").append(toAppend); 
       if ($('select:last > option').length > 1) 
         $("select").find('option[value=' + selectedOption + ']').remove(); 
      }); 

我儘量減少儘可能多的變化(只編輯了3或4行)。

+0

您的回答部分正確。但它沒有在每行中顯示選定的下拉菜單。 我的要求是用戶無法在新行中選擇相同的下拉值。下拉式值可以在整個表單中只選擇一次,也可以在下拉菜單中顯示。 示例如果我在第一個下拉列表中選擇了Facebook,則在第二個下拉列表中選擇google。再次,如果我點擊Facebook下拉菜單它不應該允許再次選擇谷歌。但目前它允許。如何避免它。我需要像這樣的輸出。 http://acmsohail.com/error.jpg – acmsohail

+0

@ user3671027我注意到您的回覆以及您的電子郵件。別擔心。只需要同時解決其他一些問題。 :) –

+1

在此先感謝。請幫我整理一下。 – acmsohail