Javascript Jquery验证-至少需要2个字段中的1个字段填充默认文本以外的任何内容
我有一个html联系人表单,在每个字段中都有默认值-即“First name”(我在其中使用,以便在用户单击时这些值消失) 我有两个字段必须填写,两个字段中的任何一个都必须填写。当然,所有字段都已确认为已填写,因为它们都有默认值。我通过使用validator.addMethod忽略默认短语来解决这个问题 我还设法调整了验证,允许使用validator.addMethod填充至少2个字段中的1个,但仅当我去掉默认值时 当存在默认值并且希望至少填写2个字段中的1个字段时,就会出现问题。我不知道当/如果至少有一个字段具有唯一的非默认值时,如何让验证识别 我在下面包含了我的代码 我不是jquery/javascript方面的专家,所以希望有一个简单的解决方案Javascript Jquery验证-至少需要2个字段中的1个字段填充默认文本以外的任何内容,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我有一个html联系人表单,在每个字段中都有默认值-即“First name”(我在其中使用,以便在用户单击时这些值消失) 我有两个字段必须填写,两个字段中的任何一个都必须填写。当然,所有字段都已确认为已填写,因为它们都有默认值。我通过使用validator.addMethod忽略默认短语来解决这个问题 我还设法调整了验证,允许使用validator.addMethod填充至少2个字段中的1个,但仅当我去掉默认值时 当存在默认值并且希望至少填写2个字段中的1个字段时,就会出现问题。我不知道当/如
<script type="text/javascript">
$(document).ready(function() {
jQuery.validator.addMethod("notEqual", function(value, element, param) {
return this.optional(element) || value != param;
}, "This field is required.");
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 () {
return $(this).val() != "";
});
var empty_fields = fields.not(filled_fields);
if (filled_fields.length < numberRequired && empty_fields[0] == element) {
return false;
}
return true;
}, jQuery.format("Please enter either a phone number or email address."));
$("#contact-form").validate({
groups: {
names: "phone email"
},
rules: {
fname: {
required: true,
notEqual: "First name*"
},
lname: {
required: true,
notEqual: "Last name*"
},
phone: {
require_from_group: [1, ".phoneEmail"]
},
email: {
require_from_group: [1, ".phoneEmail"]
},
}
});
});
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.")
});
$(文档).ready(函数(){
addMethod(“notEqual”,函数(值、元素、参数){
返回此值。可选(元素)| |值!=param;
},“此字段为必填项。”);
jQuery.validator.addMethod(“需要来自_组的_”),函数(值、元素、选项){
var numberRequired=选项[0];
var选择器=选项[1];
变量字段=$(选择器,element.form);
var filled_fields=fields.filter(函数(){
返回$(this).val()!=“”;
});
var empty_fields=fields.not(filled_fields);
if(填充字段.length
你的信息
*必填字段
尝试使用该属性
jQuery.validator.addMethod(“需要来自组的组”),函数(值、元素、选项){
var numberRequired=选项[0];
var选择器=选项[1];
变量字段=$(选择器,element.form);
var filled_fields=fields.filter(函数(){
返回$(this.val()!=this.defaultValue;
});
if(filled_fields.length
演示:为了检查电子邮件或电话号码的唯一性,您需要在填写字段后立即进行Ajax调用
<form id="contact-form" method="post" action="contact-submitted.php" >
<input type="text" class="clearField" name="fname" id="fnameField" value="First name*" />
<input type="text" class="clearField" name="lname" id="lnameField" value="Last name*" />
<input type="text" class="hidden" name="subject" id="subjectField" />
<input type="text" class="clearField phoneEmail" name="phone" id="phoneField" value="Phone number*" />
<input type="text" class="clearField phoneEmail" name="email" id="emailField" value="Email" />
<textarea name="message" class="clearField" id="messageField">Your message</textarea>
<span class="required-field">*required field</span>
<input type="submit" id="contact-submit" value="Start planning now" />
</form>
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 () {
return $(this).val() != this.defaultValue;
});
if (filled_fields.length < numberRequired && filled_fields.index(element) == -1) {
return false;
}
return true;
}, jQuery.format("Please enter either a phone number or email address."));