我在下拉字段中使用jQuery验证,根据所选选项,我必须验证下一个输入字段,即如果我选择了pan卡,则在下一个字段中允许使用字母数字字符。为此,我正在使用正则表达式。然后在选择Adhar卡时,只允许在下一个输入字段中使用数字值。 我想在用户点击下拉选项后验证它。我试过,但代码不起作用。请检查我的代码出错的地方。
$('#idproof').change(function() {
var selection = $(this).val();
if (selection == 'pan') {
var val = document.registration.idnumber;
var numbers = /^[0-9]+$/;
if (val.value.match(numbers)) {
document.registration.zip.focus();
return true;
} else {
$('#error').empty();
$('#error').append('pan number must have numeric characters only');
val.focus();
return false;
}
} else if (selection == 'Adhar') {
var adhar = document.registration.idnumber;
var letters = /^[0-9a-zA-Z]+$/;
if (val.value.match(letters)) {
document.registration.zip.focus();
return true;
} else {
$('#error').empty();
$('#error').append('Adhar number must have alphanumeric characters only');
val.focus();
return false;
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div id="error"></div>
<form id="reg" name="registration">
<ul>
<li>IdProof:
<select id="idproof">
<option value="Default">Please select a id type</option>
<option value="pan">pancard</option>
<option value="Adhar">AdharCard</option>
</select>
</li>
<li>Id Number:
<input type="text" id="idnumber" />
</li>
</ul>
</form>
答案 0 :(得分:1)
您的代码的问题是未定义的变量,因此它抛出了错误。我已经解决了这个问题,并做了一些其他修改。
我认为,当更改任一输入并在两个更改事件之间共享功能时,您可以更好地显示错误。此外,您应该在显示消息之前检查空输入(我还没有添加它)。
var checkValidation = function() {
$('#error').empty();
var selection = $('#idproof').val();
var val = document.registration.idnumber;
if (val.value || val.value === 0) {
if (selection === 'pan') {
var numbers = /^[0-9]+$/;
if (val.value.match(numbers)) {
// document.registration.zip.focus();
return true;
} else {
$('#error').append('pan number must have numeric characters only');
val.focus();
return false;
}
} else if (selection === 'Adhar') {
var letters = /^[0-9a-zA-Z]+$/;
if (val.value.match(letters)) {
// document.registration.zip.focus();
return true;
} else {
$('#error').append('Adhar number must have alphanumeric characters only');
val.focus();
return false;
}
}
}
};
$('#idnumber').change(checkValidation);
$('#idproof').change(checkValidation);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div id="error"></div>
<form id="reg" name="registration">
<ul>
<li>IdProof:
<select id="idproof">
<option value="Default">Please select a id type</option>
<option value="pan">pancard</option>
<option value="Adhar">AdharCard</option>
</select>
</li>
<li>Id Number:
<input type="text" id="idnumber" />
</li>
</ul>
</form>
&#13;