读取javascript中的html复选框



不确定这是否是正确的问题,但我有一个带有复选框的html表单。我使用的websocket需要通过javascript代码获取该值。但无论是否选中该框,它都会显示"是"的值。我应该如何将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属性。我的两个示例都应该读取属性,而不是特性属性反映了最初呈现的标记,而不是控件的真实当前状态。

关于属性与属性的更多信息。

相关内容

  • 没有找到相关文章

最新更新