2010-05-06 107 views
1

我想弄清楚最好的方法來處理下拉列表其中一個選項「其他」顯示一個隱藏的文本字段(通過jQuery),其中用戶可以輸入文字。如果下拉菜單和輸入字段都被賦予相同的「名稱」屬性,則服務器端代碼會對每個值的值進行檢查,以便知道哪個值是活動值 - 例如,如果選擇框的值是「其他「,然後檢查文本輸入字段的值 - 如果這不是默認值(」輸入文本「),則可以使用該值並將其保存到數據庫。這是一個混亂的方法來解決這個問題嗎?處理「其他」選項在下拉選擇與自由文本輸入字段

編輯:這是我的客戶端代碼顯示/隱藏「其他」字段。

$('.select_change').live("click change", function(){ 
      //check if value is other 
      $(this).parent().find(".hidden").toggle($(this).val() == 'other'); 
     }); 

回答

2

我覺得要去的方法是檢查所選的值是否等於「其他」,然後根據值顯示/隱藏輸入。

在服務器端,我會執行類似的檢查,如果下拉值等於「其他」,則存儲文本框中的值。

我沒有測試代碼,但我認爲這是總體思路:

$('#myDrpdown').change(function() { 
    if($(this).val() === "other"){ 
     $("#hiddenInput").show(); 
    } else { 
     $("#hiddenInput").hide(); 
    } 
}); 
+1

+1這是我傾向於去的方法。但我會說,對於一個雙語網站,我發現最好的方法是測試* last *元素(通過假設,並且'Other'字段的實現始終是生成的選擇中的最後一個)。 – karim79 2010-05-06 16:30:47

+0

嗨丹尼,這或多或少是我目前所擁有的(將我的代碼添加到我的帖子上面)。當數據庫中有一個值有兩個可能的輸入時,如何更好地處理提交的數據更是一個問題 – ted776 2010-05-06 16:32:41

+0

@ted我想這取決於如何將數據傳送到服務器,如果您正在發送數據在json格式中,您可以評估在客戶端使用哪一個,以便當它到達服務器時該值是正確的值,我可以看到的唯一其他選項是檢查服務器端下拉列表的值,看看它是否設置爲其他,如果它是然後使用文本框的值。你似乎不願意採取這種做法,有沒有原因? – DannyLane 2010-05-06 17:01:39

相關問題