Jquery 根据输入字段中包含的任何值显示隐藏的div
我有一个包含表单的div的以下标记。表单有一个基本搜索div和一个高级divJquery 根据输入字段中包含的任何值显示隐藏的div,jquery,input,show-hide,Jquery,Input,Show Hide,我有一个包含表单的div的以下标记。表单有一个基本搜索div和一个高级div <div class="form"> <form> <input type="text" name="first_name"> <input type="text" name="last_name"> <div class="Basic" class="slide"> <i
<div class="form">
<form>
<input type="text" name="first_name">
<input type="text" name="last_name">
<div class="Basic" class="slide">
<input type="text" name="location">
</div>
<a class="toggle-link" onclick="ShowDiv('Adv');">+ show advanced fields</a>
<div id="Adv" class="slide hidden">
<input type="text" name="first_name2">
<input type="text" name="last_name2">
<input type="text" name="street">
<input type="text" name="town">
<input type="text" name="country">
</div>
</form>
<a onclick="ShowDiv('Basic');">- hide advanced fields</a>
</div>
我的问题(这是基于一个我从未尝试过去工作的现有问题的后续问题)是,我希望用户返回此搜索表单时,如果他首先使用了高级搜索表单,则显示打开的高级div。因此,如果任何输入字段包含任何数据值,当用户返回页面时,div应该打开
到目前为止,我有这个代码,但它不起作用
$(document).ready(function () {
$(function(){
$("div#Adv input").each(function(){
if($(this).val()!='')
$(this).parent().parent().show();
return;
});
});
你应该这样做
$("div#Adv input").each(function(){
if(this.value !== ''){
//get the first ancestor with class=slide and show it
$(this).closest('.slide').show();
return;
}
});
你应该这样做
$("div#Adv input").each(function(){
if(this.value !== ''){
//get the first ancestor with class=slide and show it
$(this).closest('.slide').show();
return;
}
});
我相信你遗漏了一些括号
$(document).ready(function(){
$(function(){
$("div#Adv input").each(function(){
if($(this).val()!='')
{
$(this).parent().parent().show();
return;
}
});
});
我相信你遗漏了一些括号
$(document).ready(function(){
$(function(){
$("div#Adv input").each(function(){
if($(this).val()!='')
{
$(this).parent().parent().show();
return;
}
});
});
我已经在我的页面上完全复制了你的代码,但无论如何div#Adv仍然是隐藏的。我把代码放在哪里重要吗?目前,它包含在我的页面底部,而隐藏/显示脚本是从外部文件引用的。如果要显示
#Adv
,请使用$(this.parent().show()
,而不是$(this.parent().parent().show())
我已将您的代码完全复制到我的页面上,但无论发生什么情况,div#Adv仍然保持隐藏状态。我把代码放在哪里重要吗?目前,它包含在我的页面底部,而隐藏/显示脚本是从外部文件引用的。如果要显示#Adv
,请使用$(this.parent().show()
,而不是$(this.parent().parent().show()
@aa1,因为它在这里工作,所以您是否将此代码放在$(document.ready()中)是的。现在,我已经将脚本的位置移到了页面上其他一些现有脚本之前,它也起到了作用。Thanks@aa1这是trange,因为它在这里工作。您是否将此代码放入$(document).ready()中?是的。现在,我已经将脚本的位置移到了页面上其他一些现有脚本之前,它也起到了作用。谢谢这似乎奏效了。现在我唯一的问题是,当显示div时,+显示高级字段也是如此。需要在代码中添加什么,以便在显示div时,class=“toggle link”是hidden@aa1. 我把它加到了答案上。这似乎奏效了。现在我唯一的问题是,当显示div时,+显示高级字段也是如此。需要在代码中添加什么,以便在显示div时,class=“toggle link”是hidden@aa1. 我把它加到了答案上。