Ruby on Rails 3. 我有一個有兩個問題的表單。我想根據用戶所做的第一個問題的選擇來顯示或隱藏第二個問題。 當前元素返回0時,它應該返回一個長度或值。 所以在JS我進入:JQuery獲取值或check_box_tag的長度
$("survey_hardware_").find("input[value='IP Phones']:checked").length
這回0
下面是腳本:
$(document).ready(function() {
$('#device').change(function(event){
if ($("survey_hardware_").find("input[value='IP Phones']:checked").length ||
$("survey_hardware_").find("input[value='IP PBX Systems']:checked").length)
{
$('#phonepbx').css('display', 'inline');
}
else
{
$('#phonepbx').css('display', 'none');
}
});
});
這是一個問題:
<div class="row" id="device">
<ul>1. What IP hardware does your company frequently sell and/or install? (select all that apply)<br/>
<li style="display:block;"><%= check_box_tag 'survey[hardware][#{test}]', "IP Phones" %> IP Phones</li>
<li style="display:block;"><%= check_box_tag 'survey[hardware][]', "IP PBX Systems" %> IP PBX Systems </li>
<li style="display:block;"><%= check_box_tag 'survey[hardware][]', "IP Security/Surveillance Systems" %> IP Security/Surveillance Systems</li>
<li style="display:block;"><%= check_box_tag 'survey[hardware][]', "IP infrastructure (cabling, switches...etc.)" %> IP infrastructure (cabling, switches...etc.)</li>
</ul>
</div>
這裏是第二個問題,我想只顯示問題1有1或2選擇。
<div class="row" id="phonepbx" style="display:none">
<ul>4a. My customers have their own brand preferences regarding VoIP manufacturers.<br/>
<li><%= f.radio_button(:voip, "1") %>Strongly Agree</li>
<li><%= f.radio_button(:voip, "2") %>Somewhat Agree</li>
<li><%= f.radio_button(:voip, "3") %>Neutral</li>
<li><%= f.radio_button(:voip, "4") %>Somewhat Disagree</li>
<li><%= f.radio_button(:voip, "5") %>Strongly Disagree</li>
</ul>
</div>
我已經嘗試在每個選擇中添加一個唯一的ID。該元素也返回0。如何獲得選擇的長度或值以隱藏或顯示div?謝謝
編輯
我改劇本了這一點。
$(document).ready(function() {
$("#survey_hardware_").on('click', function(){
if (($("#survey_hardware_")[0].value == 'IP Phones') || ($("#survey_hardware_")[1].value == 'IP PBX Systems'))
{
$('#phonepbx').css('display', 'inline');
}
else
{
$('#phonepbx').css('display', 'none');
}
});
});
這將顯示div。但不切換顯示和隱藏。感謝您的信息。
我的解決方案
function checkHardware() {
if ($('#device input:checkbox:eq(0)').is(':checked') || $('#device input:checkbox:eq(1)').is(':checked'))
{
$('#phonepbx').css('display', 'block');
}
if ($('#device input:checkbox:eq(2)').is(':checked') || $('#device input:checkbox:eq(3)').is(':checked'))
{
$('#ipsec').css('display', 'block');
}
if ($('#device input:checkbox:eq(0)').is(':checked') == false && $('#device input:checkbox:eq(1)').is(':checked') == false)
{
$('#phonepbx').css('display', 'none');
}
if ($('#device input:checkbox:eq(2)').is(':checked') == false && $('#device input:checkbox:eq(3)').is(':checked') == false)
{
$('#ipsec').css('display', 'none');
}
}
感謝您的幫助。
如果從'.find(改變你原來的代碼)''來.filter ()'它應該工作。 – RustyToms