我正在使用asp.net mvc网站,我有4 dropdowns
和4 textboxes
这样:
dialprefix1 callfromnumber1
dialprefix2 callfromnumber2
dialprefix3 callfromnumber3
dialprefix4 callfromnumber4
我想对每一行进行分组,以便dialprefix1
中的值为44
,则callfromnumber1
的长度为10.意味着我想根据{textbox
执行验证{1}}并且有多行。
我用它来允许文本框中的数字
dropdown
我正在验证这样的长度:
$(".phone").keydown(function (event) {
// Allow: backspace, delete, tab, escape, and enter
if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
// Allow: Ctrl+A
(event.keyCode == 65 && event.ctrlKey === true) ||
// Allow: home, end, left, right
(event.keyCode >= 35 && event.keyCode <= 39)) {
// let it happen, don't do anything
return;
} else {
// Ensure that it is a number and stop the keypress
if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
event.preventDefault();
}
}
});
1)我想基于类将这些组合起来所有textbox都有class = phone,所有下拉列表都有class dialprefix。
2)。如果相关的下拉选择值为44
,我想确保该数字以0,1,2,7,8开头标记看起来像这样:
$("#DefaultCallFrom1").keypress(function () {
if ($("#Dialprefix1").val() == "44") {
if (this.value.substring(0, 1) == "0" && this.value.length == "10") {
displayAlertMessage("You can not enter more characters");
this.value.length <= 10
}
else {
displayAlertMessage("You can not enter more characters");
this.value.length <= 9
}
}
})
$("#DefaultCallFrom2").keypress(function () {
if ($("#Dialprefix2").val() == "44") {
if (this.value.substring(0, 1) == "0")
return this.value.length <= 10
else
return this.value.length <= 9
}
})
答案 0 :(得分:0)
为每个输入提供一个公共类(它们不会显示在标记中)。有几种方法可以将input
与其对应的select
进行匹配,例如使用prev()
或next()
,如果它们在html树中并排,而没有其他元素如{ {1}}将它们分开。
学习遍历html树的各种方法将有助于简化jQuery代码和创建标记,从而简化traveral。请注意,以下任何内容都不需要ID。
我将使用<br>
来匹配它们,因为标记未知。我使用index()
作为DefaultCallFrom
的className。
input
API参考
答案 1 :(得分:0)
这是您的代码的工作版本。试试这个而不是$("#DefaultCallFrom1").keypress(function ()
:
$(".phone").keypress(function(evt) {
// Find the index
index = ($(this).attr('id')).split("DefaultCallFrom")[1];
// Check Dialprefix
if ($("#Dialprefix" + index).val() == "44") {
// 0 prefix
if (this.value[0] == 0) {
if(this.value.length == 10) {
alert("You can not enter more characters...");
evt.preventDefault();
}
} else {
if(this.value.length == 9) {
alert("You can not enter more characters...");
evt.preventDefault();
}
}
}
});