如果选中复选框,请按Enter键提交表单

时间:2013-03-06 23:44:01

标签: javascript jquery html forms

我有一个用按钮提交的表单,但如果选中了复选标记,我还想通过输入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时才运行该功能,但是我无法正确执行。有什么帮助吗?

5 个答案:

答案 0 :(得分:1)

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

$('#enterCheckbox').attr('checked')的某些内容应该告诉您是否选中了复选框。

答案 1 :(得分:1)

你应该可以这样做:

if(document.getElementById(enterCheckbox).checked)) {
    // do all the good stuff
}

答案 2 :(得分:1)

你的功能应该包括一个额外的条件......如:

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

答案 3 :(得分:0)

使用jQuery检查框是否已选中:

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

所以你的<script>将是:

function pressed(e) { 
    if (($("#enterCheckbox").is(":checked")) && ((window.event ? event.keyCode : e.which) == 13)) {
        document.forms[0].submit()
    }
}

答案 4 :(得分: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();
    }
});