1

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

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>
4

4 回答 4

2

你的代码有很多问题。

  • 该值不是一个functionattribute您可以使用的删除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;
}
于 2013-07-30T03:25:03.907 回答
0

顺便说一句,我在你的代码中发现了一个尴尬。让我们关注这一行:

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

});

});

有两个});,一个给$(document)哪个,哪个给if()??虽然 for if(),不要那样输入,只是}为了有条件的关闭。而对于 make a function ...,你不需要把函数放在里面$(document).ready。它可以独立运行。例如 :

function validateForm() {

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

}

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

结果见this。希望这可以帮助

于 2013-07-30T03:54:36.320 回答
0

尝试

if ($('#u').value() == '') 
{
    alert("no value found");
    return false;
} else {
    $('form[name="myForm"]').submit();
}
于 2013-07-30T03:26:57.760 回答
0

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

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

于 2013-07-30T03:30:13.790 回答