0

我有一个使用按钮提交的表单,但如果已选中复选标记,我还想允许通过键入 ENTER 键来提交。

我已经让输入部分工作了:

<form action="index.php">
  <textarea onkeydown="pressed(event)"></textarea>
</form>
<input type="checkbox" id="enterCheckbox" />

<script>
  function pressed(e) { 
    if ( (window.event ? event.keyCode : e.which) == 13) { document.forms[0].submit() }
  }
</script>

现在我只想在 #enterCheckbox 已被选中的情况下运行该函数,但我无法正确执行它。有什么帮助吗?

4

5 回答 5

1

除了添加额外条件之外,您的工作是否按预期工作?如果是这样,您应该能够&&在当前支票中添加额外if(...)支票。

类似的东西$('#enterCheckbox').attr('checked')应该告诉你复选框是否被选中。

于 2013-03-06T23:47:56.277 回答
1

你应该能够做这样的事情:

if(document.getElementById(enterCheckbox).checked)) {
    // do all the good stuff
}
于 2013-03-06T23:50:39.583 回答
1

你的函数应该包括一个额外的条件..比如:

<script>
  function pressed(e) { 
    if ( ( (window.event ? event.keyCode : e.which) == 13) AND (document.getElementById('enterCheckbox').checked) ){ document.forms[0].submit() }
  }
</script>
于 2013-03-06T23:53:42.883 回答
0

要检查该框是否被选中,使用 jQuery:

$("#enterCheckbox").is(":checked")

所以你的<script>意愿是:

function pressed(e) { 
    if (($("#enterCheckbox").is(":checked")) && ((window.event ? event.keyCode : e.which) == 13)) {
        document.forms[0].submit()
    }
}
于 2013-03-06T23:49:24.077 回答
0

如果使用 jQuery,我建议使用选择器让生活更轻松。但是您要检查是否#enterCheckbox已检查的是.is(':checked').

更新的 HTML

<form id="myForm" action="index.php">
  <textarea id="myTextarea"></textarea>
</form>
<input type="checkbox" id="enterCheckbox" />

jQuery 实现

$('#myTextarea').on('keydown', function(e) {
    var key = window.event.keyCode || e.which;

    if($('#enterCheckbox').is(':checked') && key == 13) {
        $('#myForm').submit();
    }
});
于 2013-03-06T23:50:12.420 回答