2011-05-07 86 views
0
  1. 我有一个窗体,其中两个复选框是“是”和“否”。这些首先是未经选择的。我希望用户只选择其中的一个,如果他们不想做出决定(这就是为什么我没有使用单选按钮),可以选择取消选择他们的选择。选择是应取消选择否,反之亦然。我不知道如何做到这一点。我使用PHP(codeigniter),Javascript和JQuery。其次,在选择是或否之后,需要显示输入字段。我已经有了这个设置,但是它在“onclick”动作上切换,这意味着选择Yes两次显示并隐藏输入字段!如果选择了“是”或“否”,我希望显示输入字段,如果“是”和“否”均未选中,我想要显示输入字段并消失。如果选中复选框,只选择一个复选框(并取消选择其余选项)并显示输入字段

    $do_toggle = "onClick=\"javascript:toggle('togglenote');\""; 
    
    echo form_radio('decision'.$key,'y',FALSE,$do_toggle)."Yes "; 
    
    echo form_radio('decision'.$key,'n',FALSE,$do_toggle)."No"; 
    
    echo form_input($mytext); 
    
    // I put a div tag around the form_input above 
    // but it's not showing in the StackOverflow question... 
    // but it's there for the toggle to work. 
    
+0

作为另一种选择,您可以将它们全部添加为'收音机'按钮...并添加第三个'none' ..所以当用户不想做出决定时,他可以点击'无单选按钮“ – 2011-05-07 12:27:53

+0

表单内置许多行,每个行都带有”是“或”否“选项。如果只有一行,那么添加一个None就可以,但是默认情况下选择了一个没有选择None的多个决策行会导致糟糕的用户界面。除非你建议默认选择和隐藏一个无? – zee 2011-05-07 12:41:52

+0

http://stackoverflow.com/questions/1467228/click-toggle-with-jquery – mplungjan 2011-05-07 16:25:44

回答

0

假设你的HTML是这样的(我认为这是):

<input type="checkbox" name="decisionY" value="y" /> Yes 
<input type="checkbox" name="decisionN" value="N" /> Yes 
<input type="text" id="togglenote" name="togglenote" /> 

你的JS是:

$(document).ready(function(){ 
    $(":checkbox[name^='decision']").change(function(){ 
    if($(this).is(":checked")){ 
     $(":checkbox[name[^='decision']").attr("checked", false); //Uncheck the other 
     $(this).attr("checked", true); 
     $("#togglenote").show(); 
    } 
    if($(":checkbox[name^='decision']:checked").size() == 0){ 
     $("#togglenote").hide(); 
    } 
    }); 
}); 

希望这有助于。干杯。

+0

唯一的问题是复选框对于Yes值和No值都具有相同的名称。即在两种情况下名称=“决定”,以便我可以在提交时读取决策值。如果两个元素名称都相同,如果选择是,我不知道如何取消选中否。我想知道是否给他们分配一个不同的ID是这里的方式。 – zee 2011-05-07 13:40:39

0

这应该做你想要什么:

$("#checkbox1").change(function() { 

if ($(this).attr("checked") && $("#checkbox2").attr("checked")) { 
    $("checkbox2").removeAttr("checked"); 
} else if ($(this).attr("checked")) { 
    $("#inputfield").show(); 
} else { 
    $("#inputfield").hide(); 
} 
}); 


$("#checkbox2").change(function() { 

if ($(this).attr("checked") && $("#checkbox1").attr("checked")) { 
    $("checkbox1").removeAttr("checked"); 
} else if ($(this).attr("checked")) { 
    $("#inputfield").show(); 
} else { 
    $("#inputfield").hide(); 
} 
}); 
0
  1. 选择其中一个作为jQuery的或JavaScript
  2. 不认为这是100%garantee,一些黑客不能设置都和后:)
  3. 分析$ _REQUEST数组设置是/否值
  4. 做出决定。

PS。 JQuery的作品不在我的诺基亚6303c :)设备,硬编码 - 将工作...所以应用程序必须有2个部分。

相关问题