在阅读了一堆问题并对它们应用“解决方案”之后,我发现 jQuery 验证器没有验证onkeyup
. 默认情况下,它应该。我确保没有通过下载新文件来修改源代码,什么都没有。
版本:jQuery 1.10.2
Validation code:
/* check form */
$("#registerForm").validate({
/* rules: {
primaryPhone: {skip_or_fill_minimum: [2,'.firstPhoneSet']},
contactPrimary: {skip_or_fill_minimum: [2,'.firstPhoneSet']},
secondaryPhone: {skip_or_fill_minimum: [2,'.phoneNum2']},
contactSecondary: {skip_or_fill_minimum: [2,'.phoneNum2']}
}*/
onkeyup: function(element)
{
$(element).valid();
},
errorElement: "span",
rules:
{
birthMonth:
{
skip_or_fill_minimum: [3,'.dob']
},
birthDay:
{
skip_or_fill_minimum: [3,'.dob']
},
birthYear:
{
skip_or_fill_minimum: [3,'.dob']
},
resume:
{
required: true,
extension: "txt|doc|docx"
},
gender:
{
required: true
},
ohlWhy:
{
required: true,
wordCount: ['30']
},
coping:
{
required: true,
wordCount: ['20']
},
intensity:
{
required: true,
wordCount: ['20']
}
}
});
笔记:
我已经尝试在没有的情况下运行此代码
onkeyup: function(element)
{
$(element).valid();
},
我还有一个 addClassRules 方法调用:
jQuery.validator.addClassRules({
field:
{
required: true,
minlength: 2
},
zip:
{
required: true,
digits: true,
minlength: 5,
maxlength: 5
},
years:
{
required: true,
digits: true,
minlength: 1,
maxlength: 2
},
phoneNum:
{
required: true,
phoneUS: true
},
phoneNum2:
{
required: false,
phoneUS: true
},
dropList:
{
required: true
},
dob:
{
date: true,
required: true
},
});
没别的了。这是我在另一个问题上找到的解决方案,但这给了我错误:
Uncaught TypeError: Object [object Object] has no method 'valid'
这看起来很奇怪,因为.valid()
它是一个验证器方法。
HTML 有很多输入字段:
<form id="registerForm" action="index.cfm" method="post">
<fieldset>
<legend>Basic Information</legend>
<div class="insets">
<label class="control-label" for="fName">First Name: </label>
<input type="text" name="fName" id="fName" class="field" value="<cfoutput>#session.fName#</cfoutput>" /><br />
<label class="control-label" for="lName">Last Name: </label>
<input type="text" name="lName" id="lName" class="field" value="<cfoutput>#session.lName#</cfoutput>" /><br />
<label class="control-label" for="nick">Nickname: <span class="optional">*optional</span></label>
<input type="text" name="nick" id="nick" value="<cfoutput>#session.nick#</cfoutput>" /><br />
</div>
</fieldset>
<br />
<input type="hidden" value="2" id="volType" name="volType" />
<br />
<!--- only show after choice has been made --->
<div id="allInfo">
<fieldset>
<legend>Contact Information</legend>
<div class="insets">
<label class="control-label" for="emailAddy">Email: </label>
<input type="email" class="input-xlarge" name="emailAddy" id="emailAddy" required value="<cfoutput>#session.emailAddy#</cfoutput>" /><br />
<!--- show only to shl vols --->
<span id="shlOnly">
<label class="control-label" for="rainnEmail">RAINN Email: </label>
<input type="email" name="rainnEmail" class="input-xlarge" id="rainnEmail" required value="<cfoutput>#session.rainnEmail#</cfoutput>" /><br />
</span>
<!--- end show only --->
<!--- only show to rcc and website vols --->
<span id="rccANDwebs">
<label class="control-label" for="address1">Address: </label>
<input type="text" name="address1" class="input-xlarge field" id="address1" value="<cfoutput>#session.address1#</cfoutput>"/><br />
<label class="control-label" for="address2">Apartment, Suite, etc:
<span class="optional">*optional</span></label>
<input type="text" name="address2" class="input-xlarge" id="address2" value="<cfoutput>#session.address2#</cfoutput>" /><br />
<label class="control-label" for="city">City: </label>
<input type="text" class="field" name="city" id="city" value="<cfoutput>#session.city#</cfoutput>" /> <br />
</span>
<!--- end show only --->
<label class="control-label" for="state">State: </label>
<select id="state" class="input-mini dropList" name="state">
<option value="">--</option>
<cfoutput query="states">
<option value="#states.id#" <cfif #session.state# EQ #states.id#>selected="selected"</cfif>>#states.stateName#</option>
</cfoutput>
</select>
<label class="control-label" for="zip">Zip: </label>
<input type="text" name="zip" class="input-small zip" id="zip" value="<cfoutput>#session.zip#</cfoutput>" />
<label class="control-label" for="primaryPhone">Primary Phone: </label>
<input type="text" class="input-medium phoneNum firstPhoneSet" name="primaryPhone" id="primaryPhone" placeholder="703-555-1010" value="<cfoutput>#session.primaryPhone#</cfoutput>" />
<br /><span class="optional">Can we leave a message at this number?</span><br />
<label class="radio inline" for="contactPrimaryYes">
<input type="radio" checked name="contactPrimary" id="contactPrimaryYes" value="yes" />Yes
</label>
<label class="radio inline" for="contactPrimaryNo">
<input type="radio" name="contactPrimary" id="contactPrimaryNo" value="no" />No
</label>
<label class="control-label" for="secondaryPhone">Secondary Phone:
<span class="optional">*optional</span></label>
<input type="text" class="input-medium phoneNum2" name="secondaryPhone" id="secondaryPhone" placeholder="703-555-1010" value="<cfoutput>#session.secondaryPhone#</cfoutput>" />
<br /><span class="optional">Can we leave a message at this number?</span><br />
<label class="radio inline" for="contactSecondaryYes">
<input type="radio" name="contactSecondary" id="contactSecondaryYes" value="yes" <cfif IsDefined("session.contactSecondary") AND session.contactSecondary EQ "yes">checked</cfif> />Yes
</label>
<label class="radio inline" for="contactSecondaryNo">
<input type="radio" name="contactSecondary" id="contactSecondaryNo" value="no" <cfif IsDefined("session.contactSecondary") AND session.contactSecondary EQ "no">checked</cfif> />No
</label>
</div>
</fieldset>
<!--- if rcc or web --->
<div class="form-actions" id="non-shlButton">
<button type="submit" style="float:right;" class="btn btn-success">Continue to Step 2 »</button>
</div>
<!--- if shl --->
<div class="form-actions" id="shlButton">
<button type="submit" style="float:right;" class="btn btn-primary">Submit My Application</button>
</div>
</div> <!--- end show after choice --->
</form>
所以我的问题是:为什么我的脚本只验证onfocusout
并且onsubmit
只验证?(当它解决了几个相同类型的问题时,为什么会出现这个错误?)