如果所有字段都已满,如何在按“Enter”时接受值?

时间:2018-01-31 13:50:20

标签: javascript jquery html keyboard-events

所以我有这个代码接受2个字段“userNAme”和“yourMessage”。只有两个字段都填满后,“发送”按钮才会激活。

$("input[type='text'],textarea").keyup(function() {
  var text = ($(this).val()).toString();
  text = text.replace(/\s+/g, " ").trim();
  var message = ($("textarea").val()).toString();
  message = message.replace(/\s+/g, " ").trim();
  if (text != "" && message != "") {
    $('input[type="button"]').removeAttr('disabled');
  } else {
    $("#send").attr('disabled', 'disabled');

  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Hello!</h1>
<form action="" method="post" id="subscribe" name="subscribe">
  First name: <input type="text" name="fname" id="fname" placeholder="Name" autofocus><br>
  <div id="message"></div>
  Your Message:<br>
  <textarea typeof="text" id="yourMessage" placeholder="Start Typing..."></textarea><br />
  <input type="button" class="button button-blue" value="Send" name="button" disabled="disabled" id="send" />
</form>
<input type="button" class="button button-blue" value="Click Me!" id="click-me" />
<div id="message"></div>

但现在我想在按下“Enter”键的同时添加输入值的功能。我希望它像“发送”按钮一样工作,即仅在所有字段都填满时才起作用。如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

如果您在单击“提交”或按Enter键时将required标记添加到input标记中,则必须已完成所有字段才能提交。

例如:

<input type="text" name="fname" id="fname" placeholder="Name" required autofocus>

答案 1 :(得分:0)

如果您要使用类型为button的{​​{1}},只要该按钮被禁用,就不会按Enter键提交表单,如下所示

submit
$("input[type='text'],textarea").keyup(function() {
  var text = ($(this).val()).toString();
  text = text.replace(/\s+/g, " ").trim();
  var message = ($("textarea").val()).toString();
  message = message.replace(/\s+/g, " ").trim();
  if (text != "" && message != "") {
    $('button[type="submit"]').removeAttr('disabled');
  } else {
    $("#send").attr('disabled', 'disabled');

  }
});