我想在用户单击提交按钮时验证用户输入,但它不起作用。
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()
结果见此。希望这能帮助