big*_*ero 9 jquery jquery-validate
我想验证我的表单,以便在两个空白字段中,至少一个字段必须填充,两个字段也可以填充; 但不能将任何字段留空.
我正在使用jquery-1.9.1-min.js,这是我的html页面.
<form action="#" class="send_form" id="forgot_pass_form" method="POST">
<fieldset>
<div class="send_row">
<label class="padding-top10">Email</label>
<input type="text" class="send_email" id="email" name="email" />
<em>You need to type an email address</em>
</div>
<div class="send_row option">OR</div>
<div class="send_row">
<label class="padding-top10">Username</label>
<input type="text" class="send_username" id="uname" name="uname" />
</div>
<div class="send_row send_submitforgotuser">
<input type="submit" value="Submit" />
</div>
</fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)
任何建议怎么做....?
我已经试过了
jQuery.validator.addMethod("require_from_group", function(value, element, options) {
alert("xxx");
var valid = $(options[1], element.form).filter(function() {
return $(this).val();
}).length >= options[0];
if(!$(element).data('reval')) {
var fields = $(options[1], element.form);
fields.data('reval', true).valid();
fields.data('reval', false);
}
return valid;
}, jQuery.format("'Please enter either username/ email address to recover password'/Please fill out at least {0} of these fields."));
Run Code Online (Sandbox Code Playgroud)
仍然没有获得惨淡的输出.
Spa*_*rky 20
您正在尝试使用validator.addMethod它是jQuery Validate插件的一部分.如果您还没有,则需要在代码中包含此插件.
然后使用require_from_group已经成为Validate插件additional-methods.js文件一部分的规则.(别忘了包含additional-methods.js文件.)
rules: {
myfieldname: {
require_from_group: [1, ".class"]
}
}
Run Code Online (Sandbox Code Playgroud)
第二个参数是class分配给分组中的所有元素.我send在你的两个输入元素中添加了一个类.
还可以使用该groups选项将两条消息合并为一条消息.
jQuery:
$(document).ready(function () {
$('#forgot_pass_form').validate({ // initialize the plugin
groups: { // consolidate messages into one
names: "uname email"
},
rules: {
uname: {
require_from_group: [1, ".send"]
},
email: {
require_from_group: [1, ".send"]
}
}
});
// for your custom message
jQuery.extend(jQuery.validator.messages, {
require_from_group: jQuery.format("'Please enter either username/ email address to recover password'/Please fill out at least {0} of these fields.")
});
});
Run Code Online (Sandbox Code Playgroud)
工作演示:http: //jsfiddle.net/sgmvY/1/
编辑: 根据Github,该require_from_group方法存在一个未解决的问题.在修复之前,开发人员会在下面推荐此解决方案.由于您将手动将修改后的方法添加到代码中,因此无需包含该additional-methods.js文件.
新工作演示:http://jsfiddle.net/kE7DR/2/
$(document).ready(function () {
jQuery.validator.addMethod("require_from_group", function (value, element, options) {
var numberRequired = options[0];
var selector = options[1];
var fields = $(selector, element.form);
var filled_fields = fields.filter(function () {
// it's more clear to compare with empty string
return $(this).val() != "";
});
var empty_fields = fields.not(filled_fields);
// we will mark only first empty field as invalid
if (filled_fields.length < numberRequired && empty_fields[0] == element) {
return false;
}
return true;
// {0} below is the 0th item in the options field
}, jQuery.format("'Please enter either username/ email address to recover password'/Please fill out at least {0} of these fields."));
$('#forgot_pass_form').validate({ // initialize the plugin
groups: {
names: "uname email"
},
rules: {
uname: {
require_from_group: [1, ".send"]
},
email: {
require_from_group: [1, ".send"]
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23409 次 |
| 最近记录: |