2012-12-20 66 views
2

我有文本輸入並用於選擇是/否單選按鈕對的形式。爲了簡單起見,單選按鈕單擊事件檢查值,如果是,則顯示輸入文本字段。如果否,則隱藏輸入字段。我還檢查準備好的文檔的初始狀態並顯示/隱藏輸入文本字段。輸入字段動態地隱藏無法顯示以後

我發現,點擊輸入任何結果使用jQuery的.hide隱藏()方法。但是,當我選擇是時,結果.show()方法調用不顯示輸入。如果我將收音機設置爲是,然後刷新頁面,則輸入顯示正常。

螢火蟲不顯示輸入的標籤。這就像點擊沒有無線電刪除DOM的輸入。

這裏的JS代碼示例:

$(document).ready(function() { 
     if ($('#cost_sharing_yes').attr('checked') == 'checked') { 
      $('input#Institutional_CS_TP').show(); 
     } else { 
      $('input#Institutional_CS_TP').hide(); 
     } 

     $('#cost_sharing_yes').click(function() { 
      $('input[id="Institutional_CS_TP"]').show(); 
     }); 
     $('#cost_sharing_no').click(function() { 
      $('input#Institutional_CS_TP').fadeOut("fast"); 
     }); 
    }   
+0

嘗試,如果($(「#cost_sharing_yes」)爲(「:勾選」)){} 也注意到淡出..不應該有差別,但使用隱藏()..可能有問題,不透明度或東西 – deach

回答

2

您關閉待機功能缺失)

$(document).ready(function() { 

} // <-- 

對於獲得的輸入checked屬性perperly你應該使用prop方法而不是attr

$(document).ready(function() { 
    var isChecked = $('#cost_sharing_yes').prop('checked'); 
    $('#Institutional_CS_TP').toggle(isChecked); 
    // .. 
}) 
+0

僅當您使用jQuery> 1.6時,纔會使用prop()方法。在以前的jQuery版本中,attr()被用來操縱「checked」。 – Dracs

+0

@Dracs這是真的,'attr'很容易出錯,他們創建了應該用於處理屬性的方法。 – undefined

+0

是在我提供的引用示例中,我忘記添加結束字符)。我曾嘗試修改我的代碼以使用.prop方法而不是.attr,但這不能解決我輸入時應該顯示的問題。有關於此的任何想法? – teaman

0

我想通了我的問題。這是一個自我造成的編碼問題。 爲了保持簡單的例子,我刪除了另一個函數調用,我認爲這個函數沒有影響問題。我錯了。在那個函數中我有

$('td#Institutional_CS_TP).text('$0'); 
    $('input[name="Institutional_CS_TP"]').val('0.00'); 

這導致只有td值顯示,而不是相同td內的輸入。 我的td和td中的輸入標籤都有相同的ID值...不是一個好主意。

相關問題