jQuery输入未隐藏
jQuery input not hidden
我正在开发一个基于CodeIgniter的新网站。我试图根据输入值将一些元素隐藏到表单中,但该字段不会隐藏,而是保持禁用状态。
这是我的代码:
HTML:
<div class="clearfix">
<label for="form-timezone" class="form-label">Filters<small>Options</small></label>
<div class="form-input">
<?php
echo form_dropdown('filter', $filters,'', 'id="form-timezone"');
echo form_dropdown('city', $cities, '', 'id="city"');
echo form_dropdown('country', $countries, '', 'id="country"');
?>
</div>
</div>
基本上是这样的:
<div class="clearfix">
<div class="form-input">
<select name="filter" id="form-timezone">
<option value="city">City</option>
<option value="country">Country</option>
</select>
<select name="cities" id="city">
<option value="Paris">Paris</option>
<option value="London">London</option>
</select>
<select name="countries" id="country">
<option value="fr">France</option>
<option value="en">England</option>
</select>
</div>
</div>
JS:
$(function() {
$("#city").hide();
$("#country").hide();
$("#form-timezone").change(function() {
if ( $("#form-timezone").val() == "city"){
$("#city").show();
$("#country").hide();
}
else if ( $("#form-timezone").val() == "country"){
$("#city").hide();
$("#country").show();
}
});
});
我尝试在html中添加一个<input>
字段,并将其隐藏在js中,结果很好。我不知道为什么,但似乎只有form_dropdown
没有隐藏。。。
有人知道我做错了什么吗?
谢谢。
我不知道你说的不工作是什么意思。但是如果没有if语句,您的代码会简单得多。
$("#form-timezone").change(function() {
var el = $('#' + $(this).val()); // <-- store matched element
el.show(); // <-- show matched element
$("#country,#city").not(el).hide(); // <-- hide unmatched element
});
它们在这个小提琴中工作得很好(它们隐藏而不是禁用)-在Firefox/Chrome/IE9中测试
http://jsfiddle.net/5LNWr/1/
这对我来说很管用。
您发布的Javascript代码在DOM就绪处理程序之后缺少一个关闭的});
。我假设每个PHP echo
语句的输出都是一个<select>
元素。
您提到表单字段"保持禁用状态"。这是否意味着它们一开始就被禁用了?禁用的表单元素不会在所有浏览器(Firefox)中捕获事件。
如果不是这样,你能提供一个jsfiddle吗?
<div class="clearfix">
<div class="form-input">
<select name="filter" id="form-timezone">
<option value="city">City</option>
<option value="country">Country</option>
</select>
<!-- Here a select foreach city and country -->
</div>
</div>
看看城市和乡村怎么没有身份证?您不能在此处选择ID。
$("#city").show();
$("#country").hide();
不行。也许试试
var $firstOption= $(“#form-timezone option:first”)
相关文章:
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- jquery可以't隐藏输入名称为“”的表单;风格”;
- 默认情况下,在ipython笔记本中隐藏输入单元格
- 单击表单1中的按钮:更改表单2中隐藏输入的值(纯javascript)
- 如何使用 JavaScriptJQuery 将隐藏输入标签的值与选择标签的选定选项的值进行设置
- 将两个隐藏输入与简单的 JavaScript 进行比较失败
- getElementById().value未设置隐藏输入
- 为什么在下面的场景中,用于存储所选文件名和文件路径的隐藏输入字段没有在表单上生成
- 在隐藏输入上使用jQuery触发按键事件
- 使用HTML和Javascript,使用4个单选按钮显示和隐藏输入字段
- 修改隐藏输入中的json数组
- 为选中的每个复选框创建隐藏输入
- 使用数据中的值填充隐藏输入
- 将隐藏输入类型转移到我的隐藏模态/表单
- 带有隐藏输入的有序列表
- Angularjs隐藏输入字段中的文本
- 在同一页面上使用jQuery Mobile Flip Switch切换具有隐藏输入样式的图像
- 通过jQuery将动态生成的输入值传递到隐藏输入中
- 无法使用jQuery更改隐藏输入文本框的值
- HTMLJavascript-如何向输入语句添加函数并隐藏输入语句,除非选中“是”,然后取消隐藏