2011-09-06 69 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')无法正常工作。