我有两个选择选项。如果用户选择"案例管理器"我试图将它带到哪里。对于选择#1的选项,然后出现选择#2的选项(它当前对用户隐藏)。
Haml的:
= form_tag app_configurations_path, :method=> 'put' do |f|
-@all_configurations.each do |config|
=hidden_field_tag "config_ids[]", config.id
%label= t('workflow.duplicate_claim_manager')
= select_tag('duplicate_claim[case_manager]', options_for_select(@case_managers_drop_down, config.configuration_value),name: "config[#{config.id}]", :include_blank => true)
%label.hidden(for="duplicate_claim_manager_secondary")
= hidden_field('duplicate_claim_manager_secondary', options_for_select(@case_managers_drop_down, config.configuration_value),name: "config[#{config.id}]", :include_blank => true)
Haml似乎是正确的,但是我无法正确取消选择#2的Javascript选项。有什么想法吗?
if ($("#duplicate_claim_case_manager :selected").text() == "Case Manager") {
$("#duplicate_claim_manager_secondary).setAttribute(type => text)
}
答案 0 :(得分:1)
您可以考虑使用jQuery的真棒.toggle()
方法。它本身会隐藏一个元素,如果它当前正在显示,如果它当前被隐藏则显示它。这不完全是你想要的。
但.toggle()
也有秘密权力。您可以将布尔值作为参数传递给它。如果该布尔值是真实的,那么它将显示该元素,如果它是假的,它将隐藏该元素。
您可以将输入作为文本字段保留整个时间,并默认隐藏它(使用style="display: none;"
属性)或在页面加载时使用JavaScript。
然后你可以使用这样的代码:
var isCaseManager = $("#duplicate_claim_case_manager :selected").text() === "Case Manager";
$("#duplicate_claim_manager_secondary").toggle(isCaseManager);
答案 1 :(得分:0)
这条线不对
$("#duplicate_claim_manager_secondary).setAttribute(type => text)
setAttribute语法:
element.setAttribute(name,value);
要更改属性,请使用:
$("#duplicate_claim_manager_secondary).setAttribute("type", "text")
<强>参考文献:强>
但实际上隐藏或显示一个元素,最好更改css display
属性 - 使用jQuery:
$("#duplicate_claim_manager_secondary").show()
和
$("#duplicate_claim_manager_secondary").hide()
;
答案 2 :(得分:0)
我不知道这是不是一个简单的转录错误,但是您在下面的块中错过了一个结束语:
此:
if ($("#duplicate_claim_case_manager :selected").text() == "Case Manager") {
$("#duplicate_claim_manager_secondary).setAttribute(type => text)
}
应该是这样的:
if ($("#duplicate_claim_case_manager :selected").text() == "Case Manager") {
$("#duplicate_claim_manager_secondary").setAttribute(type => text); //Added closing quotation mark
}
要使对象可见,请删除display css属性或将其设置为所需的模式。要使对象不可见,请将其css display属性设置为none。
标准JavaScript:
document.getElementById("duplicate_claim_manager_secondary").style.display = "none"; //Hide
document.getElementById("duplicate_claim_manager_secondary").style.display = ""; //Make Visible
jQuery的:
$("#duplicate_claim_manager_secondary").toggle(); // Toggle visibility
//Or...
$("#duplicate_claim_manager_secondary").show(); // Make Visible
$("#duplicate_claim_manager_secondary").hide(); // Hide