2014-09-29 64 views
0

不知道這是否是正確的問題,但在財政上我有HTML表單,它有一個複選框。我正在使用需要使用JavaScript代碼提取該值的websockets。但不管天氣情況,盒子是否被檢查,它顯示'是'的值。我應該如何去獲得coorect價值拉入蟒蛇......?閱讀javascript中的html複選框

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Flask-SocketIO Test</title> 
<script type="text/javascript" src="//code.jquery.com/jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js"></script> 
<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function(){ 
     namespace = '/test'; // change to an empty string to use the global namespace 

     var socket = io.connect('http://' + document.domain + ':' + location.port + namespace); 
     socket.on('connect', function() { 
      socket.emit('my event', {data: 'Connected... Waiting for you...'}); 
     }); 


     socket.on('my response', function(msg) { 
      $('#log').append('<br>' + msg.data); 
     }); 


     $('form#emit').submit(function(event) { 
      socket.emit('my event', {data: $('#emit_data').val(), 
            checkbox: $('#checkbox').val() 
            } 
     ); 
      return false; 
     }); 

    }); 
</script> 
</head> 
<body> 
<h1>Flask-SocketIO Test</h1> 
<h2>Send:</h2> 
<form id="emit" method='POST' action='#'> 
    <input type="text" name="emit_data" id="emit_data" placeholder="Message"><br> 
    <input id="checkbox" checked="checked" name="checkbox" type="checkbox"></td> 
    <input type="submit" value="Echo"></div> 
</form> 
<h2>Receive:</h2> 
<div id="log"></div> 
</body> 
</html> 

回答

1

如果所選元素的長度爲大於0使用選擇:checked和測試:

$('form#emit').submit(function(event) { 
     socket.emit('my event', {data: $('#emit_data').val(), 
           checkbox: $('#checkbox:checked').length > 0 
           } 
    ); 
1

有一對夫婦的方式,但我更喜歡閱讀checked屬性:

var isChecked = $('#checkbox').prop('checked'); 

這是另一個等價的陳述,讀取更好一點:

var isChecked = $('#checkbox').is(':checked'); 

你看到它總是檢查的原因是因爲val()被檢查checked屬性,而不是checked財產。我的兩個示例都應該從屬性中讀取,而不是屬性屬性反映了最初呈現的標記,而不是控件的真實當前狀態。

More on properties vs. attributes

+0

明白了,這種信息有沒有中央位置? – user1601716 2014-09-29 22:11:06

+0

[jQuery API文檔頁面上的'prop()'](http://api.jquery.com/prop/)有一小部分標題爲「屬性與屬性」。如果你打算把jQuery放在你的工具箱中,我強烈建議你閱讀* entire * API Documentation站點。所以就是這樣,以及12年的Web應用程序開發經驗...... :) – 2014-09-29 22:13:07