2011-09-06 31 views
2

我試圖在選中/取消選中時更改複選框的輸入值。它似乎改變了值(我通過alert()調試它),但沒有反映在HTML中。這很麻煩,因爲我想從html中提取值並將其保存在數據庫中。更改輸入值[不在HTML中反映出來]

   $(document).ready(function(){ 
        $("#box:checked").live('click', function(e) { 
         $("#box").val('1');       
        }); 

        $("#box:not(:checked)").live('click', function(e) { 
         $("#box").val('0');        
        });  
       }); 

    ... 

     <input id="box" type="checkbox" value=""> 

    ... 

我一直在試圖解決這個小時。我遇到了一個有同樣問題的人,但解決方法相當笨拙。

感謝您的幫助

+0

HTML *源*無法更改...如果這是你的意思。 –

+0

當你說它沒有反映在HTML中,你究竟是什麼意思?例如,單擊「查看源代碼」時顯示的標記不會改變。應該更新* DOM *,並且如果您可以在警告框中顯示更改的值,則似乎會發生這種情況。 –

+0

那麼,你有什麼建議,如果我有一個複選框,有一個值,我想改變點擊時? – Dwelle

回答

3

您需要使用attr爲它在HTML中反映出來。

$("#box").attr("checked", "checked"); 

http://jsfiddle.net/Xeon06/BwGeX/

+0

不,不工作。至少不適合我。 HTML值保持不變。 – Dwelle

+1

那麼你的HTML值是什麼意思?該文件的源代碼永遠不會改變,但如果您使用Chrome等瀏覽器檢查DOM,則會看到它將發生更改。 –

0

<input id="box" type="checkbox" value=""> - 「價值」 表示瀏覽器呈現的負載時HTML。

表單元素在DOM不更新的運行值督察

一個複選框的「選中」的價值是沒有關係的「值」屬性,但它可以被操縱,以反映不同的價值。

您可以獲取該複選框值$("#box").is(':checked'),這將返回真/假

1

我在最近的一個項目使用

$("#box").attr('value', '1'); 

。由於某種原因,.val('1')無法正常工作。