簡體   English   中英

閱讀javascript中的html復選框

[英]read a html checkbox in javascript

不知道這是否是正確的問題,但是以百分數計,我有帶有復選框的html表單。 我正在使用需要用javascript代碼提取該值的websocket。 但是無論天氣如何,都不會選中該框,它會顯示“是”的值。 我應該如何獲取coorect值以放入python ...?

<!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>

使用選擇器:checked並測試所選元素的長度是否大於0:

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

有兩種方法,但我更喜歡閱讀checked屬性:

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

這是另一個等效的語句,讀起來更好一些:

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

您看到它總是被檢查的原因是因為val()正在檢查被checked屬性,而不是被checked 屬性 我的兩個示例都應從屬性而不是屬性讀取。 屬性反映了原始呈現的標記,而不反映控件的真實當前狀態。

有關屬性與屬性的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM