我现在使用parsley.js进行数据验证,现在我的页面上有两个div,我点击click事件的时候只想验证第一个div里面的数据,但是此时发现第二个div里面的数据还是会被验证,如何解决。(绑定数据使用的是ko),现将js html 展示如下
html:
<form data-validate="parsley" id="form1">
<div id="divOne">
<div>
<div><img src="../images/login/logo.png" /></div>
<ul >
<li>用户名1:<input name="" type="text" data-required="true" data-bind="value:userName" /></li>
<li>密 码1:<input name="" type="password" data-required="true" data-bind="value:password" /></li
<li class="btns"><input name="" type="button" data-bind="click:loginRedirt" /></li>
</ul>
</div>
</div>
<div id="divTwo">
<ul >
<li>用户名2:<input name="" type="text" data-required="true" data-bind="value:name" /></li>
<li>密 码2:<input name="" type="password" data-required="true" data-bind="value:pwd" /></li
<li class="btns"><input name="" type="button" data-bind="click:loginA" /></li>
</ul>
</div>
</form>
js
(function () {
function loginModel() { var self = this; self.userName = ko.observable(); self.password = ko.observable(); }
loginModel.prototype.loginRedirt = function () { if (!$('#form1').parsley('validate')) return; };
var viewModel = new loginModel(); ko.applyBindings(viewModel, document.getElementById("divOne"));
function login() {
var self = this; self.name = ko.observable(); self.pwd = ko.observable();
}
login.prototype.loginA = function () { if (!$('#form1').parsley('validate')) return; }
var viewModel1 = new login(); ko.applyBindings(viewModel1, document.getElementById("divTwo"));
})()
首先修改一下parsley.js源码,在
if ($(this).is('form')) { newInstance = bind($(this), 'parsleyForm');} 这句话后添加
else if ($(this).is('div')) { newInstance = bind($(this), 'parsleyForm'); }
接着就可以再自己写的代码中验证div即可