Javascript 用户表单验证是否已填写?
我目前有一个用户表单Javascript 用户表单验证是否已填写?,javascript,jquery,asp.net-mvc,validation,Javascript,Jquery,Asp.net Mvc,Validation,我目前有一个用户表单 @using (Html.BeginForm("Iflexcst", "Costing", FormMethod.Post, new { onsubmit = "return (checkForm(this) && false);" })) { <label for="NUM">Number of Sets:</label> <br> <inpu
@using (Html.BeginForm("Iflexcst", "Costing", FormMethod.Post, new { onsubmit = "return (checkForm(this) && false);" }))
{
<label for="NUM">Number of Sets:</label>
<br>
<input class="foo" id="NUM" type="text" value=@ViewBag.Quantity name="Quan" />
<label for="CS"> Cost</label>
<br>
<input class="foo" id="CS" type="number" value=@ViewBag.result />
<input type="submit" value="Cost" />
@使用(Html.BeginForm(“iflexst”、“Costing”、FormMethod.Post、new{onsubmit=“return(checkForm(this)&&false);”)
{
套数:
成本
还有一个javascript,在我按下submit按钮后进行验证
<script type="text/javascript">
function checkForm(form) {
if (form.Quan.value == "") {
alert("Error: Username cannot be blank!");
form.username.focus();
return false;
}
re = /^\w+$/;
}
</script>
功能检查表(表格){
如果(form.Quan.value==“”){
警报(“错误:用户名不能为空!”);
form.username.focus();
返回false;
}
re=/^\w+$/;
}
我希望userform在执行Validation之后不要将数据提交给控制器,因为我的jquery当前返回消息,但随后仍然进入控制器函数,如果NUM为空,该函数将发送错误
如果上述问题很容易解决,那么在填写表单时是否也可以让它进行验证,例如,如果用户输入一个<10的数字,表单会立即显示一个弹出窗口,并且在该错误修复之前不会让您提交?问题出在javascript的第行
form.username.focus();
由于表单中没有名为“username”的元素,因此当
if (form.Quan.value == "")
如果您试图聚焦表单中不存在的html元素,那么在返回false行被命中之前,浏览器将返回一个未捕获的引用异常,表单将转到控制器
要解决此问题,请删除以下行
form.username.focus();
或者改成
form.Quan.focus();
如果Quan文本框为空,则它将聚焦于您的Quan文本框,并且表单将不会发送到控制器。为什么不将jquery.validate.unobtrusive与验证属性结合使用,并立即完成所有操作。我是否需要使用nuget manager安装它?并将其包含在捆绑包中?
~/bundles/jqueryval
中)。你需要学习使用模型,并使用html帮助程序绑定到模型。请访问MVC网站,学习基本教程解决了这一问题。哈哈!谢谢你的帮助!我为你提供了wisdomPerfect的绿色标记!可能对其他人也有用:)