Javascript 如何使选择下拉列表响应输入框
我正在尝试使“选择”下拉列表响应输入框 因此,当在输入框中输入某个内容(可以是任何内容)时,选择将更改为关闭,如果在输入框中未输入任何内容,则选择将打开。知道代码有什么问题吗?谢谢Javascript 如何使选择下拉列表响应输入框,javascript,jquery,Javascript,Jquery,我正在尝试使“选择”下拉列表响应输入框 因此,当在输入框中输入某个内容(可以是任何内容)时,选择将更改为关闭,如果在输入框中未输入任何内容,则选择将打开。知道代码有什么问题吗?谢谢 $('.input').change(函数(){ if($(this.val()=''){ $('.msg').text('open');} 否则{ $('.msg').text('closed');} }) 打开 关闭 打开 关闭 正如我对问题的评论,使用.val()函数并引入与值相同的名称来选择所需的值 请记
$('.input').change(函数(){
if($(this.val()=''){
$('.msg').text('open');}
否则{
$('.msg').text('closed');}
})
打开
关闭
打开
关闭
正如我对问题的评论,使用.val()
函数并引入与值相同的名称来选择所需的值
请记住,您提供的代码,如果有许多.msg
下拉列表,它将更改所有下拉列表
下面是代码片段
$('.input').change(函数(){
if($(this.val()=''){
$(this.parents(“tr”).find('.msg').val('open');
}
否则{
$(this.parents(“tr”).find('.msg').val('closed');
}
});代码>
打开
关闭
打开
关闭
正如我对问题的评论,使用.val()
函数并引入与值相同的名称来选择所需的值
请记住,您提供的代码,如果有许多.msg
下拉列表,它将更改所有下拉列表
下面是代码片段
$('.input').change(函数(){
if($(this.val()=''){
$(this.parents(“tr”).find('.msg').val('open');
}
否则{
$(this.parents(“tr”).find('.msg').val('closed');
}
});代码>
打开
关闭
打开
关闭
使用val()
更改的值,选择并使用键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上
$('.input')。在('keyup',function()上{
if($(this.val()=''){
$(this).parent().next().children('select').val('open');
}否则{
$(this).parent().next().children('select').val('closed');
}
})
打开
关闭
打开
关闭
使用val()
更改的值,选择并使用键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上键向上
$('.input')。在('keyup',function()上{
if($(this.val()=''){
$(this).parent().next().children('select').val('open');
}否则{
$(this).parent().next().children('select').val('closed');
}
})
打开
关闭
打开
关闭
我建议进行三项更改:
将事件绑定更改为$('.input')。在(“input”,function(){
)-它将确保下拉列表在每次按键时都会发生更改,而不是在blur
上。因此,用户可以在键入时看到更改
将$(“.msg”)
更改为$(this).parents(“tr”).find(“.msg”)
。前者选择DOM中具有.msg
类的所有元素,而后者仅影响属于当前tr
的.msg
元素
将.text('open')
更改为.val(“open”)
——这将设置选择元素的值
$('.input')。在(“input”,function()上){
if($(this.val()=''){
$(this.parents(“tr”).find('.msg').val('open');
}否则{
$(this.parents(“tr”).find('.msg').val('closed');
}
})
打开
关闭
打开
关闭
我建议进行三项更改:
将事件绑定更改为$('.input')。在(“input”,function(){
)-它将确保下拉列表在每次按键时都会发生更改,而不是在blur
上。因此,用户可以在键入时看到更改
将$(“.msg”)
更改为$(this).parents(“tr”).find(“.msg”)
。前者选择DOM中具有.msg
类的所有元素,而后者仅影响属于当前tr
的.msg
元素
将.text('open')
更改为.val(“open”)
——这将设置选择元素的值
$('.input')。在(“input”,function()上){
if($(this.val()=''){
$(this.parents(“tr”).find('.msg').val('open');
}否则{
$(this.parents(“tr”).find('.msg').val('closed');
}
})
打开
关闭
打开
关闭
.text()将只向元素添加文本。由于元素不包含文本,它包含值,因此不会发生任何情况。您必须以某种方式选择值。请尝试使用.val(“关闭”)或“打开”。.text()将只向元素添加文本。由于元素不包含文本,它包含值,因此不会发生任何情况。您必须以某种方式选择值。请尝试使用.val(“关闭”)或“打开”当我试图在第1行输入某物时,所有两行的select下拉列表都变为closed,只有第1行应变为closed,而第2行保持打开状态是的,这是因为在每个。input
上,您说的是所有.msg
元素