0
我知道有這樣的負載和負載問題,但沒有一個真的有幫助。。爲什麼.valid()總是返回TRUE?
我在一個頁面上有兩種形式(一些字段是共享的),一次只會提交一種形式。我認爲這是因爲有些字段是共享的,但我從頁面中完全刪除了第二種形式,並且錯誤仍然存在。
我正在實現自定義驗證程序,但是當我調用.valid()時,它總是返回TRUE,即使是tho規則另有說明。
目前我只有第一種驗證方式(我沒有繼續,因爲它失敗了)。
$('#driver-form').validate({
rules:{
FirstName: {
required:true,
minlength: 2,
},
LastName: {
required:true,
minlength: 2,
},
Email: {
required: true,
email: true
},
PhoneNum: {
required: true,
exactlength: 11,
},
Password: {
required: true,
minlength: 6,
symbol: true
}
},messages:{
Firstname: {
required: "Please enter your firstname",
minlength: "Firstname should contain more that 2 characters"
},
LastName: {
required: "Please enter your lastname",
minlength: "Lastname should contain more that 2 characters"
},
}});
這裏是形式:
@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form", @id = "driver-form" }))
{
@Html.HiddenFor(m => m.IsGarage, new { @class = "_HdnIsGarage" })
<div class="registration-form" id="driver-registration-form">
@Html.AntiForgeryToken()
<hr />
@Html.ValidationSummary("", new { @class = "text-danger" })
<div>
@Html.Kendo().TextBoxFor(m => m.FirstName).HtmlAttributes(new { placeholder = "First Name" })
</div>
<div>
@Html.Kendo().TextBoxFor(m => m.LastName).HtmlAttributes(new { placeholder = "Last Name" })
</div>
<div>
@Html.Kendo().TextBoxFor(m => m.Email).HtmlAttributes(new { placeholder = "E-mail", @type = "e-mail" })
</div>
<div>
@Html.Kendo().TextBoxFor(m => m.PhoneNum).HtmlAttributes(new { placeholder = "Phone Number" })
</div>
<div>
@Html.Kendo().TextBoxFor(m => m.Password).HtmlAttributes(new { placeholder = "Password", @type = "password" })
</div>
<div>
@*@Html.Kendo().TextBoxFor(m => m.ConfirmPassword).Name("pw").HtmlAttributes(new { placeholder = "Password" }))*@
</div>
<div>
@Html.Kendo().Button().Name("Register").Content("Register").HtmlAttributes(new { type = "button", onclick = "Javascript:driverRegister()" })
</div>
</div>
}
這裏的jQuery被調用時,點擊 '註冊':
function driverRegister() {
debugger;
var test1 = $('#driver-form')
var test = $('#driver-registration-form input');
alert(test.valid())
if (test.valid() == true) {
$('#driver-form').submit();
}
}
你也使用validate.unobtrusive?如果是這樣,請在調用'.valid()'之前嘗試'$ .validator.unobtrusive.parse($('#driver-form'))''。 – Stuart
對於初學者假設您使用JQuery驗證插件,'.valid()'函數驗證表單不是輸入字段。 - [檢查這裏](https://jqueryvalidation.org/valid/) –
@Stuart,我有用戶和js抱怨.parse, NikhilNanjappa,我驗證輸入不同的形式,它完美的作品 –