javascript - 检查表单是否填充了 jQuery

标签 javascript jquery html

所以我想在允许按下提交按钮之前检查是否填写了电子邮件输入和密码输入。我不断回复说变量保持错误。

我的 Javscript:

var filled1 = false;
var filled2 = false;
setInterval(function() {
if ($(".login_email").length > 2) {
  filled1 = true;
} else {
  filled1 = false;
}
if($(".login_pass").length > 2) {
  filled2 = true;
} else {
  filled2 = false;
}
if(filled1 == true && filled2 == true) {
  $(".login_sub").css("cursor", "pointer");
  $(".login_sub").css("opacity", "1");
  $(".login_sub").attr("onclick", "document.forms['login_form'].submit();");
} else {
  $(".login_sub").css("cursor", "not-allowed");
  $(".login_sub").css("opacity", "0.6");
  $(".login_sub").attr("onclick", "");
}
}, 500);

和表格:

<form method="POST" name="login_form">
      <input type="email" name="login_email" class="login_email" placeholder="Email"/>
      <br/>
      <input type="password" name="login_pass" class="login_pass" placeholder="Password"/>
      <br/>
      <div class="login_sub" name="sub_login">Login</div>
    </form>

最佳答案

您有一些额外的代码。只需检查字段的值长度:

setInterval(function() {
  if($(".login_email").val().length && $(".login_pass").val().length) {
    $(".login_sub").css("cursor", "pointer");
    $(".login_sub").css("opacity", "1");
    $(".login_sub").attr("onclick", "document.forms['login_form'].submit();");
  } else {
    $(".login_sub").css("cursor", "not-allowed");
    $(".login_sub").css("opacity", "0.6");
    $(".login_sub").attr("onclick", "");
  }
}, 500);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form method="POST" name="login_form">
  <input type="email" name="login_email" class="login_email" placeholder="Email"/>
  <br/>
  <input type="password" name="login_pass" class="login_pass" placeholder="Password"/>
  <br/>
  <div class="login_sub" name="sub_login">Login</div>
</form>

虽然我个人更喜欢以下方法(没有 setInterval()):

$(".login_sub").css("cursor", "not-allowed");
$(".login_sub").css("opacity", "0.6");
function submitForm() {
  if($(".login_email").val().length && $(".login_pass").val().length) {
    $(".login_sub").css("cursor", "pointer");
    $(".login_sub").css("opacity", "1");
    $(".login_sub").attr("onclick", "document.forms['login_form'].submit();");
  } else {
    $(".login_sub").css("cursor", "not-allowed");
    $(".login_sub").css("opacity", "0.6");
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form method="POST" name="login_form">
  <input type="email" oninput="submitForm()" name="login_email" class="login_email" placeholder="Email"/>
  <br/>
  <input type="password" oninput="submitForm()" name="login_pass" class="login_pass" placeholder="Password"/>
  <br/>
  <div class="login_sub" name="sub_login">Login</div>
</form>

关于javascript - 检查表单是否填充了 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51165409/

相关文章:

javascript - 动态扩展 Canvas 而不拉伸(stretch)绘制的内容

javascript - 将代码片段转换为 JavaScript 中的方法

javascript - 向 onclick 属性添加函数奇怪的行为

javascript - 无法隐藏我使用 javascript 和 jquery 生成的 html 元素

javascript - Mongoose 不保存数据

javascript - for 循环和词法环境中的闭包

javascript - Web scraper 使用 Rx.js 遍历页面

java - 如何在servlet中获取jQuery JSON请求参数?

javascript - 如何检查我正在查看哪个 javascript id

html - 将鼠标悬停在 AngularJS 中的不同元素上时在 div 中显示不同的内容