仅当从列表中选择了一个特定选项时,才显示相关内容
Display related content only if one particular option is selected from the list
现在,如果我选择列表中的任何选项,它将显示一个输入字段,但我想更改它的方式是仅在选择"其他"时才显示输入。
我该怎么做?
$(document).ready(function() {
var viewModel = function() {
var self = this;
self.actions_new_location = ["Studio", "Conservation Studio", "Gallery", "Other"];
self.actions_new_location_selected = ko.observable();
};
ko.applyBindings(new viewModel());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<li class="row">
<div class="col-3">
<label>Location of Photography</label>
</div>
<div class="col-3">
<select data-bind="options: actions_new_location, value: actions_new_location_selected, optionsCaption: 'Choose...'"></select>
</div>
</li>
<!-- to be shown only if "Other" is selected -->
<li class="row" data-bind="visible: actions_new_location_selected">
<div class="col-3 col-offset-3">
<label>Please describe
<input type="text" data-bind="" />
</label>
</div>
</li>
使其成为计算可观察量,这将更具单元可测试和可重用性。
$(document).ready(function() {
var viewModel = function() {
var self = this;
self.actions_new_location = ["Studio", "Conservation Studio", "Gallery", "Other"];
self.actions_new_location_selected = ko.observable();
self.actions_other_selected = ko.computed(function() {
return self.actions_new_location_selected() === "Other";
});
};
ko.applyBindings(new viewModel());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<li class="row">
<div class="col-3">
<label>Location of Photography</label>
</div>
<div class="col-3">
<select data-bind="options: actions_new_location, value: actions_new_location_selected, optionsCaption: 'Choose...'"></select>
</div>
</li>
<!-- to be shown only if "Other" is selected -->
<li class="row" data-bind="visible: actions_other_selected">
<div class="col-3 col-offset-3">
<label>Please describe
<input type="text" data-bind="" />
</label>
</div>
</li>
只需检查绑定的可见性检查:
<li class="row" data-bind="visible: actions_new_location_selected() === 'Other'">
<div class="col-3 col-offset-3">
<label>Please describe
<input type="text" data-bind="" />
</label>
</div>
</li>
相关文章:
- 根据所选选项显示/隐藏不同的表单
- HTML 表单字段根据从下拉列表中选择的选项显示/隐藏
- 根据所选选项显示文本
- 禁用浏览器自动选项(显示输入元素中保存的单词)
- 基于所选选项显示asp:TextBox的JavaScript
- 更改选项显示当前时间
- 根据下拉列表中的选定选项显示详细信息
- 如何根据选中的选项显示文本数组
- 根据单独选择的选项显示 HTML 选项
- jQuery不能基于选择选项显示/隐藏元素
- Javascript cookie 用于保存用户首选项并使用共享首选项显示内容
- 根据选择框中的选项显示单选按钮
- 如何在asp.net web应用程序中使用javascript根据下拉列表中选择的选项显示不同的输入类型
- 下拉选项应根据上一个选项显示
- jQuery:根据所选选项显示/隐藏元素
- 选择选项显示/隐藏IE9问题
- 为'
- 我的下拉选项显示按钮时,它不应该'
- 根据选择的选项显示一个Div(带有计算值)——Angular
- 根据带有自定义值属性的选择选项显示图像