请教 两个文本框共用一个js代码 点击第一个弹出下拉框 选择文字填入文本框 第二个文本框不会被同时填入?
$(".starting_port").click(function(){var$this=$(this);varindex=$(".starting_port").in...
$(".starting_port").click(function(){ var $this=$(this); var index = $(".starting_port").index(this); $(".it_pop_box").eq(index).show(); $(".prot_list > li > a").click(function(){ $this.val($(this).text()); $(".it_pop_box").hide(); }) });
展开
展开全部
首先,你的这段代码不应该定义在文本框的点击事件里面
$(".prot_list > li > a").click(function(){
$this.val($(this).text());
$(".it_pop_box").hide();
})
如果定义在这里,每次点击文本框的时候都会再次绑定下拉列表的点击事件。
其次,var $this=$(this);这条语句获取的是当前点击的文本框,你在列表点击事件中使用$this.val($(this).text());赋值肯定只能给当前点击的文本框赋值。
你可以把代码修改成这样试试:
$(".starting_port").click(function(){
var index = $(".starting_port").index(this);
$(".it_pop_box").eq(index).show();
});
$(".prot_list > li > a").click(function(){
$(".starting_port").val($(this).text());
$(".it_pop_box").hide();
})
$(".prot_list > li > a").click(function(){
$this.val($(this).text());
$(".it_pop_box").hide();
})
如果定义在这里,每次点击文本框的时候都会再次绑定下拉列表的点击事件。
其次,var $this=$(this);这条语句获取的是当前点击的文本框,你在列表点击事件中使用$this.val($(this).text());赋值肯定只能给当前点击的文本框赋值。
你可以把代码修改成这样试试:
$(".starting_port").click(function(){
var index = $(".starting_port").index(this);
$(".it_pop_box").eq(index).show();
});
$(".prot_list > li > a").click(function(){
$(".starting_port").val($(this).text());
$(".it_pop_box").hide();
})
追问
谢谢你来回答我的问题,这样的修改仍然解决不了我的问题,因为没有单独指向 两个文本框同时填入被点击的文字。
追答
没有单独指向 是什么意思
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询