jQuery字段验证无效



我想在用户单击提交按钮时验证用户输入,但它不起作用。

jQuery

$(document).ready(function() {
   function validateForm() {
      if ($('#u').value() == '') 
      {
         alert("no value found");
         return false;
      }
  });
});

HTML

<form name="myForm" action="main.php" onsubmit="return validateForm()" method="post">
   <input type="text" id="u" />
   <input type="submit" value="submit" />
</form>

您的代码中存在许多问题。

  • 该值是不是function,而是attribute移除。您可以使用val(),也不能将该值与jQuery对象一起使用,您可以将其与DOM对象一起使用。

  • 您可能忘记将id分配给您的输入字段。

  • 语句<input type="text">应为b4 <input id="u" type="text">

  • 函数validateForm的当前右括号关闭后有额外的括号,这不是在关闭输入标记。

实时演示

if ($('#u').val() == '') 
{
   alert("no value found");
   return false;
}

您可以使用本地javascript方法getElementById来获取DOM元素(对象)并使用该对象的value属性。

实时演示

if (document.getElementById('u').value == '') 
{
     alert("no value found");
     return false;
}

尝试

if ($('#u').value() == '') 
{
    alert("no value found");
    return false;
} else {
    $('form[name="myForm"]').submit();
}

正如@Barmar建议的那样,检查您现有的代码中是否有丢失的id。我会将id="u"添加到<input type="text">中,并且在选择不明确的id名称时要小心,尤其是为了让其他人稍后可以阅读您的代码。

现在您已经编辑了原始问题,很难看出我的答案是如何相关的

顺便说一句,我发现您的代码有些笨拙。让我们关注这一行:

  ......
   if ($('#u').value() == '') 
   {
     alert("no value found");
     return false;
   }
});
});

有两个});,哪个用于$(document),哪个用于if()??尽管对于if(),不要这样键入,只键入}用于条件关闭。为了制作function ...,您不需要将函数放入$(document).ready中。它可以独立运行。例如:

function validateForm() {
   if ($('#u').val() == '') 
   {
      alert("no value found");
      return false;
   }
}

您应该将.value()更改为.val()

结果见此。希望这能帮助

最新更新