Javascript 根据输入键上的下拉更改,应完成某些功能
有一个下拉列表和输入框。如果在下拉列表中选择了Aadhar,我将为输入框指定只接受数字的按键事件。对于PASSPORT,我正在更改使用字母数字字符的按键事件Javascript 根据输入键上的下拉更改,应完成某些功能,javascript,jquery,html,Javascript,Jquery,Html,有一个下拉列表和输入框。如果在下拉列表中选择了Aadhar,我将为输入框指定只接受数字的按键事件。对于PASSPORT,我正在更改使用字母数字字符的按键事件 函数更改文档类型(pthis){ //下拉式更改 var htmlid=“#”+pthis.id; var doctype=$(htmlid+':selected').val(); populateValidations(doctype,“docId”); } 函数populateValidations(doctype,inputId){
函数更改文档类型(pthis){
//下拉式更改
var htmlid=“#”+pthis.id;
var doctype=$(htmlid+':selected').val();
populateValidations(doctype,“docId”);
}
函数populateValidations(doctype,inputId){
$(“#”+inputId).removeAttr(“onkeydown”);
$(“#”+inputId).removeClass(“onlyNumeric”);
$(“#”+inputId).removeClass(“字母数字”);
如果(doctype==“1”){
//阿达尔
$(“#”+inputId).addClass(“onlyNumeric”);
$(“#”+inputId.attr(“onkeydown”,“returninputonlynumberTablet(this,event,12)”);
}
如果(doctype==“2”){
//护照
$(“#”+inputId).addClass(“字母数字”);
$(“#”+inputId.attr(“onkeydown”,“returninputonlyaphanumericTablet(这个,事件,10)”);
}
}
函数inputonlyaphanumericTablet(pthis,event,length){
$('.alphabetNumeric')。on('input',函数(事件){
如果(pthis.value.length在绑定新的监听器之前必须删除另一个监听器,那么每次执行下拉操作时都会得到多个监听器
仅从元素中删除属性不会解除事件绑定。
这不是一个完整的复制/粘贴答案。这是一个示例,您可以根据自己的需要对其进行调整。我刚刚从您的代码中选取了分配侦听器的部分,并对其进行了更改
function populateValidations(doctype,inputId){
var inp = $("#"+inputId); // get this once. Easier if there is a name change etc
inp.unbind('keydown'); // unbind any keydown event that may exist
inp.removeClass("onlyNumeric");
inp.removeClass("alphabetNumeric");
if(doctype === "1"){
//aadhar
inp.addClass("onlyNumeric");
// add your keydown
inp.keydown(function(){ return inputOnlyNumberTablet(this,event,12);});
}
if(doctype === "2") {
//passport
inp.addClass("alphabetNumeric");
inp.keydown(function(){return inputOnlyAlphaNumericTablet(this,event,10);});
}
}
在绑定新的监听器之前,必须删除另一个按键监听器。每次执行下拉操作时,都会得到多个监听器
仅从元素中删除属性不会解除事件绑定。
这不是一个完整的复制/粘贴答案。这是一个示例,您可以根据自己的需要对其进行调整。我刚刚从您的代码中选取了分配侦听器的部分,并对其进行了更改
function populateValidations(doctype,inputId){
var inp = $("#"+inputId); // get this once. Easier if there is a name change etc
inp.unbind('keydown'); // unbind any keydown event that may exist
inp.removeClass("onlyNumeric");
inp.removeClass("alphabetNumeric");
if(doctype === "1"){
//aadhar
inp.addClass("onlyNumeric");
// add your keydown
inp.keydown(function(){ return inputOnlyNumberTablet(this,event,12);});
}
if(doctype === "2") {
//passport
inp.addClass("alphabetNumeric");
inp.keydown(function(){return inputOnlyAlphaNumericTablet(this,event,10);});
}
}
您可以使用单个验证函数,只需更改选项更改时要使用的模式。您可以使用单个验证函数,只需更改选项更改时要使用的模式。