2014-07-10 9 views
1

我有一個表單與多種類型的輸入字段與一些複雜的驗證,根據用戶輸入或選擇禁用/啓用各種輸入類型。我使用JS來檢查不同的啓用輸入類型,如果它們是空的,它會保持運行總數。每次啓用的輸入被修改時,CheckForm函數都會運行。Javascript的標識已啓用下拉選擇類型

但是,我遇到的問題是確定哪些下拉選擇類型被啓用,如果爲空,則需要在alt_count變量中進行計數。如果你看下面的代碼,請注意複選框和正常的文本輸入類型工作正常,這只是選擇一種類型的問題。

代碼:

function CheckForm() { 
    var alt_count = 0; 
    var field_list = ''; 

    $('tr#BaseTab td input:not(:button):not(:disabled), tr#BaseTab td select:not(:disabled)').each(function() { 
     if ($(this).attr('type') === 'checkbox') { 
      var temp_obj = $(this); 
      var temp_name = $(this).attr('name'); 
      if ($('input[name=' + temp_name + ']:checked').length === 0) { 
       alt_count += 1; 
      } 
     } else if ($(this).attr('type') === 'select-one') { 
      if ($(this).attr("selectedIndex") === 0) { 
       alt_count += 1; 
      } 
     } else { 
      if ($(this).val() === '') { 
       alt_count += 1; 
      } 
     } 
    }); 

感謝提供任何幫助。

+0

是否有窗體代碼來看?你完全確認你的選擇正在被禁用? – cyberwombat

回答

0

select元素實際上並不具有屬性type="select-one"。但是,DOM元素將具有.type屬性,該屬性允許您檢查您是否正在處理select-oneselect-multiple。因此,而不是檢查'類型'屬性,檢查屬性是這樣的:

else if ($(this)[0].type === 'select-one') { 
相關問題