Tôi hiện đang sử dụng các bassistance jquery validation hoặc plugin jqueryvalidation (họ đổi tên nó) và tôi có nó xác nhận một hình thức như vậy:jquery validation add đầu vào bắt buộc động
if($.fn.validate) {
$("#frmNewOrder").validate({
rules: {
txtAmount: {
required: true,
digits: true
},
ddlAccount: {
required: true
},
ddlBank: {
required: true
}
}
});
}
Bây giờ tùy thuộc vào số tiền tôi cần phải yêu cầu hoặc không phải là một trường bổ sung một danh sách thả xuống và tùy thuộc vào danh sách thả xuống đó một đầu vào văn bản khác. vì vậy nó giống như:
if($('#txtAmount').val() >= 10000){
//add ddlReason required
}
if($('#ddlReason').val() == 'o'){
//add txtReason required
}
Tôi đã thử thêm lớp css 'bắt buộc' như các trường khác nhưng tôi lấy nó nếu chúng không nằm trong quy tắc thì nó không hoạt động? Tôi đã thử thêm các quy tắc như sau:
$("#ddlReason").rules("add", {
required: true});
và điều đó cũng không hoạt động. bất kỳ đề xuất?
EDIT: Đây là link để xác thực jquery mà tôi đang sử dụng. nếu tôi sử dụng quy tắc bên ngoài nó mang lại cho lỗi này:
Uncaught TypeError: Cannot read property 'settings' of undefined
on line 124:
var settings = $.data(element.form, 'validator').settings;
và sử dụng những gợi ý tôi đã nhìn thấy ở những nơi khác tôi đã làm mà đây là những gì gây ra lỗi :
var defaultrules = {
txtAmount: {
required: true,
digits: true
}
}
if($.fn.validate) {
$("#frmNewOrder").validate();
addRules(defaultrules);
}
EDIT 2: đây là đánh dấu html, hy vọng điều này sẽ giúp ích.
<form id="frmNewOrder" name="frmNewOrder" action="" method="post">
<label>Amount</label>
<input type="text" name="txtAmount" id="txtAmount" class="required" />
<button id="calculate" type="button">Calculate</button>
<div id="dvreason" style="display:none;">
<select id="ddlReason" name="ddlReason">
<option></option>
<option value="i">Option 1</option>
<option value="o">Other</option>
</select>
<div id="dvother" style="display:none">
<label>Other reason</label>
<input type="text" name="txtOther" id="txtOther" />
</div>
</div>
<input type="submit" name="send" id="send" value="Send" />
</form>
Bạn có thể gửi một số HTML với JS trong bối cảnh? Có lẽ đặt nó trong một [jsfiddle] (http://jsfiddle.net) –
Tôi đang gặp khó khăn khi thêm xác nhận trên jsfiddle lol nếu tôi có thể tìm ra nó tôi sẽ đăng nó – Andres
Không, bạn chắc chắn có thể sử dụng 'lớp = "required" 'hoặc' .rules ('add') 'thay vì trong khai báo' rules' trong '.validate()'. Phải có cái gì đó sai với mã của bạn. Hiển thị đủ mã để xây dựng bản trình diễn làm việc. Tất cả jQuery và HTML có liên quan. – Sparky