Tôi có một hình thức duy nhất, tùy thuộc vào nút radio được nhấp (Đăng nhập hoặc đăng ký), hiển thị một trong hai:jQuery Validation: Quy định Thay đổi động
- địa chỉ email
- mật khẩu
hoặc:
- tên
- tuổi
- địa chỉ email
- mật khẩu
Nhấp vào nút radio Toggles khả năng hiển thị của các trường Đăng nhập/đăng ký:
<form id="myForm">
<input name="userAction" type="radio" value="login" checked="checked">Login</input>
<br />
<input name="userAction" type="radio" value="signup">Sign Up</input>
<div id="loginFields" style="display:none">
<!-- Login fields (email address and password) -->
</div>
<div id="signupFields" style="display:none">
<!-- Signup fields (name, age, email address, password) -->
</div>
</form>
Tôi đang sử dụng jQuery Validation plug-in, và tôi muốn sử dụng các quy tắc sau:
var signupRules = {
emailAddressTextBox:
{
required: true,
email: true
},
passwordTextBox:
{
required: true,
minlength: 6,
maxlength: 24,
passwordValidationRule: true // custom regex added with $.validator.addMethod()
}
};
var loginRules = {
nameTextBox:
{
required: true,
maxlength: 50
},
loginEmailAddressTextBox:
{
required: true,
email: true
},
loginPasswordTextBox:
{
required: true,
minlength: 6,
maxlength: 24,
passwordValidationRule: true // custom regex added with $.validator.addMethod()
},
loginPasswordAgainTextBox:
{
required: true,
minlength: 6,
maxlength: 24,
equalTo: "#loginPasswordTextBox"
passwordValidationRule: true // custom regex added with $.validator.addMethod()
}
};
Làm cách nào để thêm quy tắc xác thực chính xác dựa trên động :
$("input[name='userAction']").change(function() {
if ($("input[name='userAction']:checked").val() === "login") {
// use loginRules
} else {
// use signupRules
}
});
Tôi đã thử những điều sau đây:
$("#myForm").validate({
rules: ($("input[name='userAction']:checked").val() === "login") ? loginRules : signupRules;
});
Nhưng kể từ khi lĩnh vực nhập của tôi là mặc định hiển thị, kiểm chứng thực của nó làm việc, nhưng kịch bản đăng ký không; nó muốn xác thực các trường Đăng nhập vì một lý do nào đó. Tui bỏ lỡ điều gì vậy?
bạn có đang thay thế các phần tử trong một biểu mẫu hoặc bạn đang hiển thị các phần tử ẩn trong biểu mẫu không? Tôi sẽ thiết lập xác nhận cho hai biểu mẫu riêng biệt và sau đó chuyển đổi chế độ hiển thị của hai biểu mẫu tùy thuộc vào tùy chọn nào được chọn. – zzzzBov
Đây là một hình thức duy nhất có thể hiển thị các trường Đăng nhập/Đăng ký bằng nút radio. – Bullines
phương thức xác thực chỉ có thể được gọi một lần cho mỗi biểu mẫu. Hãy suy nghĩ về nó như là một khởi tạo. Hãy xem [bài đăng này] (http://suntouchersoftware.com/2013/07/05/tips-for-using-the-jquery-validation-plugin/) để biết chi tiết. – lboullo0